HN user

w0rd-driven

224 karma

Web developer out of Woodstock, GA. Primarily friendly with JavaScript and PHP but my IT past has a way of bleeding into my current knowledge.

[ my public key: https://keybase.io/w0rddriven; my proof: https://keybase.io/w0rddriven/sigs/UYULSVOXnPzWFBuzmdbJrVZDyVzQoyMiOrSDHtVXx8A ]

Posts0
Comments177
View on HN
No posts found.

Not to detract from what seems like an intricate project, but peon-ping (https://www.peonping.com/) has a ton of voice packs now and one of them is Mr Meeseeks. My only issue with it so far is that it's not easy to mix per-project and global voices. It usually takes trying to install from zero and there is an approach I've found using symlinks. It has come quite a long way and having some kind of audio cue has been a game changer.

I can’t exactly tell if we’re saying the same thing but my thought was a flag to switch between the 1.2 way for faster startup and the earlier approach for longer running processes. The trade off is added complexity in identifying your binary usage patterns and keeping both methods in the tooling.

These kind of changes may not be breaking in a technical sense but it’s very unexpected behavior if you’re one to notice patterns like file sizes changing in such a significant way over time. An answer of “stick with v1.1x indefinitely if you want the old behavior” only feels like a very temporary answer.

Just so I clearly understand, if I have a lot of files and directories in say /repositories or /projects and go to upgrade, there’s a chance I won’t have that any more because I mistakenly treated it like any other *nix filesystem? That’s... not disconcerting in the least.

The official docs for Elixir or Phoenix framework go a long way. One thing that sticks out above the rest for me is Elixir koans[0]. They’re extremely rudimentary but I think the project showcases Elixir’s hot reloading if I’m not mistaken and it’s very fluid. Other follow along courses may have taken this approach but I was extremely impressed by how everything fits together.

[0] https://github.com/elixirkoans/elixir-koans

I think the biggest to a hurdle is the fact that there is no stdlib so nothing unused has to be shaken out. I think that’s a low barrier now though with more than adequate tooling. Another comment mentions a different stdlib for server vs browser but that’s also not a terribly hard problem.

I think a good first pass would come from studying analytics from npm. What are the most used packages? The most stable? I know lodash makes a lot of sense but there’s also underscore. I think the biggest hurdles are really political over technology as everyone has been so entrenched now that a one-size-fits-all stdlib would be hard. Not impossible, just hard. I do wish someone were working on it and I hate to say it but Google probably has the most skin in the game with v8 and Chrome yet I don’t really trust them not to abandon it. So who else is there? It wouldn’t be a very ‘sexy project’ either but still seems worth it to at least try.

It's hard to gauge its looks as unfamiliar with TS as I am but would the equivalent without the spread operator look any better?

I call code like this 'clever' as it uses the language constructs to get usually a very optimal end result at the behest of being harder for n00bs like myself to parse.

I do wonder what a prettier version of this would look like. It certainly wouldn't be this concise but would it be better or harder to follow? I'm okay with something like this if it solves a very specific problem I hardly see. If my entire code base is littered with this? No thanks. Yea eventually it'd be second nature but I'd rather it be more verbose and slightly easier to unpack than this tightly packed.

How do you know you're unable to be a programmer? Are you just basing that on having issues with leetcode or CTCI?

I spent 2 years in college studying CS before I couldn't continue. I had just started getting into harder courses using primarily assembly and my interest faded quick. I had this incorrect assumption that developers lived in terribly small cubicles and it didn't interest me much. I had also quickly burnt out, having a job at 40+ hours a week for an ISP and going to school full time in addition was unattainable. Networking and systems seemed to be more interesting at the time and I took a 10 year detour in IT.

In my IT tenure I slowly developed programs to solve business needs, starting with batch scripts and working my way up to very simple automation tools. Somewhere along the way I no longer cared about the work conditions a developer, doing the work was just too fun and I gained an immense sense of accomplishment when my creations were being utilized. Fast forward to getting my first full time developer-only position as a C#/.NET developer doing primarily Windows apps 8 years ago to now being a full stack web developer. It took being paid solely as a developer before I really felt like one and it took until probably 2-3 years ago before the imposter syndrome started to completely wear off. Where I may lack in algorithm knowledge I make up for it in understanding devops topics to have a more complete understanding of the full technology stack running the web apps I have a hand in. I believe every developer could benefit from a little operational knowledge as it usually makes debugging esoteric issues with a technology platform easier.

I'd describe my capabilities as more of an integrator. I used to write every library I used but I find other developers often have more complete solutions I could bastardize into something to fit a specific use case. While the puzzles I work with primarily involve fitting packages together into solutions, the end result still involves all of the same developer workflow of debugging and automated testing. I'm not incapable of algorithm knowledge, it just bores the ever living fuck out of me. I'm extremely fulfilled in spite of having some less than enjoyable positions, so hopefully you don't let this period try to define your future. There's an amazing breadth to this field to the point of easily having analysis paralysis.

Other comments give good alternatives but there are companies all over the planet paying great money for CRUD/LoB apps solving all sorts of interesting problems. There's also an amazing breadth of jobs for people with the knowledge of computing that comes from a CS degree if being a developer really isn't for you. You don't have to be in a wildly different industry but something else may involve solving interesting problems that keep you more engaged.

I would assume their logs would possibly tell them which tokens were associated with the users that downloaded v3.7.2. npm probably doesn't need credentials to download a package so the number of downloads is likely higher. Determining other packages affected are another matter entirely and no one can say this attack vector is only bound by this specific date window. This could've been way more widespread unless they're unpacking payloads and grepping for key pieces of this specific attack.

I think it would be helpful if they could expose some of those logs but considering the meat of what matters would be the IP addresses to verify if your machine was compromised (or your CI server) that GPDR effectively wiped that possibility off the table. It would almost behoove them to setup a kind of haveibeenpwned service where you can check against stuff like this in the future. It's not like this can't happen again as the hole hasn't been closed completely, only this one set of compromised packages appears clean for now.

I crawl a specific site somewhere up to 50 unique URLs a day. I store both the unparsed full html as a file and the json I'm looking for as another separate file. The idea is if something breaks instead of taking a hit to make the call again, I have the data and I should just process that. It's come in extremely handy when a site redesign changed the DOM and broke the parser.

I do the same at $dayJob where I'm parsing results of an internal API. Instead of making a call later that may not have the same data, I store the json and just process that. I feel like treating network requests as an expensive operation, even though they're not really, helped me come up with some clever ideas I've never had before. It's a premature optimization considering I've had like 0.000001% of failure but being able to replay that one breakage made debugging an esoteric problem waaaaaay simpler than it would've been otherwise.

I went to college for a bachelor's degree from about 1998 to early 2000. I never finished but I absorbed a breadth of the fundamentals. Once I started getting into assembly and deeper C++ usage I lost interest. This was a little before .NET 1.0 and my CS 101 course made everything coalesce. Prior to that I had cut my teeth on Basic and specifically Visual Basic 3 and beyond but without the fundamentals all I was really doing was creating forms and backing code. It took understanding a different language like Pascal for me to first get into Delphi and then follow the trail to C# where I would eventually land a job as a full time WPF developer from being in primarily an IT focused role.

I think I got lucky and latched onto Pascal at just the right time. I don't think Python or Java would've carried me as far as something about them is actively off-putting. I have no problems reading just about any language and I'm unsure how that happened exactly. I feel like it's likely the result of being mostly self taught with CS 101 bringing about a matrix moment where I finally started seeing the code.

I feel like some of the latter courses in specific languages may be a problem for someone like me but considering I've never completed any, I may be extremely biased. I've often wondered what I may be missing without completing my degree, but for me today that would just be a piece of paper. If I've lost opportunities for something that saddles me with more debt for very little extra return of investment, I'd rather ignore the opportunities that have passed me over rather than do something that feels like appeasement. I admit I could be approaching this all wrong but I've had no problems being gainfully employed for the last 8 years as solely a developer. I know the worth I've brought to the companies I've been involved in even if interview processes in the past have made me feel inadequate.

At the end of the day though it's ultimately going to come down to how you feel. Do you feel you need this? Can you justify the downsides, the extra time and money spent on something you've proven more than capable of handling over the last 4 years? If you can handle the downsides, I say go for it. If you're someone that feels like me, it's probably not worth it.

I ran into this December 2017 when I went to transfer funds to Coinbase. To be a little fair, coinbase had a series of more than one charge and refund. When I initiated this verification, Wells Fargo alerted me to the activity via text and allowed the transaction to be authorized. To this day, no other transaction on that spending account has ever presented itself in this manner. Due to the disjointed nature and possibly stability issues at the time this process failed hard.

What did work was a wire transfer. This was a $30 fee paid to Wells Fargo and on top of the $10 fee from Coinbase, making it cost $280 to credit my account with $240. Wells Fargo took 3x the fee and the conspiracy theorist in me believes this is their primary motivator for doing this. You can get your money out to do what you want with it, but not without a steeper penalty than the exchange. Now that this stance is official and if I hadn't lost money (to take a simple view, that $240 is now worth around $75) I'd be looking to open another account somewhere that doesn't try to tell me how to use my money. When I realize this other account at whatever mythical bank is somehow superior in every way, I would ditch them completely. It doesn't seem like the greatest move on their part but they could also be counting on the fact that I may never do this because of the hassle involved with changing everything over.

What does your CV have on it? Are you highlighting technologies or are you showcasing business needs followed by solutions?

My resume style used to highlight the former because I thought I had to prove that I used technology x to solve problem y. I do mention technology where applicable but it's to highlight the business need and solution. I'm trying to show that I can pick up anything at full speed to solve real problems. That's what both of us do day in and day out or else we wouldn't have been employed at all until now. Having to prove that we're not imposters when someone clearly believes we aren't is really the most annoying part about all of it.

I'm in the same boat though around needing a solid GitHub profile even with what I feel is a very concise CV. At some point we do have to mark things as 'done' and just keep shopping out job opportunities until someone else believes us like our current employer.

I came from the other way around. I only studied CS in college and my cs101 course is where everything clicked back in 1998. I didn't get my degree and took 10 years of IT to realize I needed to be a developer. I jumped to a company for abysmal pay but they took a chance and I proved I could hack it. The transition from .NET to PHP took a similar leap of faith where I wasn't even sure I wanted to take that divergence. Looking back, I feel I made the right choice but in both instances it required very good friends vouching for my skills as my interview chops were frankly abysmal and may still be.

Now I'm looking to jump to JavaScript or Elixir and analysis paralysis has set in. Unlike the previous transitions, I couldn't have these as my primary focus. I have to resort to personal projects or get very lucky to work with Vue from time to time. Proving myself to myself or other people seems much harder without a very current Github profile and gearing up for interviews requires a form of study that's difficult. I use these techniques consistently enough to be highly proficient but it's not easy to keep that breadth of knowledge on hand to answer most interview questions. I feel like this matters more than a degree at all tbh but there seems to be a bit of selection bias if they're specifically commenting on the type of degree you have. When CS is largely rooted in mathematics and a math degree tends to cover way more advanced topics that I feel are largely applicable.

This also accurately describes what Microsoft purchased with LinkedIn. It still isn't the best platform in terms of what it covered but there's immense value in the community that was purchased. Because I see the pattern now, I'm curious what other communities will get folded into the MS ecosystem as a result in the future.

The company I work for used Darwin in place of CentOS up until some time in 2015 for a good number of years. Do not recommend. At all. The case insensitive file system didn't help though in terms of running things it seemed okay but I have a feeling it wasn't really that great. Darwin seems like a good idea on paper but I don't feel like it's all that usable.

I think in spirit its a good thing. I do want to incentivize content producers to produce good content and recoup costs.

The reality of it seems far different. What stops a site from running all the miners at once? They'll likely pick what produces the most returns and may never audit shady networks. Then there's the notion of me getting what I paid for. What stops a site from getting more from me than the content is 'worth' and pocketing that change? Multiply that by every site.

We may or may not agree that ad networks and their tactics are to blame for the current situation. We're also dealing with sites that are either complicit by ignorance and have never audited their content, or they're complicit by straight malice and just need their money however they can get it.

As a user that seemingly can't trust any of the players, I feel like Mozilla has my back. As a web developer, I have a blog with zero ads with the notion that if I can't afford the $5 vps it runs on, maybe I shouldn't produce said content. That doesn't hold very much water for most useful content producers though because at some point the cost of infrastructure becomes to much to handle.

I think ultimately I'd feel better about a 'browser blessed' mining network or set of standards or something more altruistic that somewhat like Patreon, showed me what I earn and let me distribute it how I see fit. It would be more akin to tipping culture in Europe over the US though, where I gave above the usual service and not guilt me into helping them make ends meet.

I think by default it handles pdf417 but you could enable a few other formats through configuration. QR seemed to be easily supported by even the cheapest models 6 or so years ago. It's like the scanner tech itself kinda stayed the same but what changed was the connectivity to the PC, moving from serial to serial-over-usb. At least that's what it looked like with the sample scanners I had access to.

In my previous life I worked on kiosks using POS equipment like this. Scanners are typically just keyboard interfaces. The barcodes are essentially very old school QR codes that actually type the information. Card swipers are the same to a degree. They read up to 3 levels of the magnetic strip and essentially type the card number and cvc into POS systems. Debugging these usually would involve opening up Notepad in Windows and watching it type the information.

My wife has found this is absolutely not the case for gmail. She consistently gets firstnamelastname emails instead of firstname.lastname which is the one she signed up with.

To test a theory I told her to login as both using the same password. Both go to her gmail account. Logging in without the dot shows the address as still firstname.lastname.

My assumption at the time is during signup Google strips the dot and it's merely there for cosmetic purposes. The RFCs should treat the dots as separate accounts but Google does not.

Just to verify this is still happening, I also have a first.last account and signed in without the dot. When I got into my account it says 'signed in as first.last'.

This may affect accounts created up to a certain point in time though as both accounts are almost as old as gmail. I got invited back during the early days and invited my then girlfriend at the time (now my wife). If this has changed over time it's become way more confusing.

The End of Windows 8 years ago

Windows is touted as the largest git repository. What service like Github or Gitlab could handle something that massive? I'm sure they could scale eventually but if that ever happened MS would likely have to house the repository and at that point they might as well keep it closed source or open source with a subscription cost that goes into the infrastructure upkeep.

I'd honestly love for more portions of Windows to become open source and slowly work up to the full repository. I think there would be an immediate influx of 0days as people find holes but I would hope they would close quickly. It's still a very big gamble to let go of something you've literally built your foundation on but I do hope that instead of Windows silently going into oblivion that they'll open it up for the masses, even if they would no longer have the resources to support it. I feel like someone or company would step up.

Having said all that, I'm going on 4 years in mostly macOS. The missteps in High Sierra are pretty abysmal but not the end of the world. I hope Apple really changes their processes to keep the OS stable but I see this downward trend in just about all PC-like operating systems. It's like everyone sees the end of the line coming and they're just half assing every move they make. I think Meltdown/Spectre was a major blow that has probably single handedly slowed all momentum to a standstill. Granted my sample size is very small but I really hope I'm just looking at this big lull right before an evolution/revolution.

This template follows where mine has ended up. I forget where I sourced the material from but it suggested listing the worthy contributions to the company with action verbs like "integrated large payments system responsible for millions in revenue". It's a very concise sentence that clearly explains the value you brought to a previous company. I used to have a resume like 'proficient in MS Word' which some companies do care for but they can usually suss out important things during a phone screen. We're also the types that largely self learn though so the "what you know" becomes more irrelevant than "what value you brought to the company based on what you know or have learned along the way". It's a subtle change that seems to have much greater impact.

My resume is ultimately more than one page, not much more, but it reads very quickly. In the source material I vaguely recall you have seconds, like maybe 30-90 to really hook the reader. Long paragraphs read much more slowly than concise yet robust bullet points. If you want to pack absolutely everything on your resume, keep the unimportant stuff towards the end. I list time travel as one of my interests at almost the very end of my resume. Getting comments on it let me know someone was either skimming for an interesting phrase or really read all of it.

I came here to say just this. Boostnote isn't 1:1 from what I can tell at a cursory glance of Quiver's features but I've enjoyed its progression even if I barely use it. I've had a rudimentary workflow of just text files in TextWrangler that should honestly get dumped into boost but I'm too lazy to even save the documents most of the time (80-90% of it is temporary ideas) much less properly categorize them.

I'd be interested in that technique, he said, completely understanding the masochistic request.

I use git based deployments in a fair number of scenarios (where the .git directory is not web accessible). Git status is the perfect mechanism for detecting code changes, the primary of which being intrusion or developers working on production directly which should never happen.

Being able to detect the breadth of all the .gitignore files over the entire directory structure doesn't sound like a fun exercise but it would be a nice addition to be able to report on what ignored files exist. It's possible there's a command for this but I feel like you're confirming my assumption that such a thing doesn't exist.

To reiterate what you're saying, a fork in this instance could be nothing more than setting up a new remote on another provider and pushing to that.

Most providers have a concept of imports that work much like a fork would. Gitlab specifically will import the repo, wiki, issues, and likely other bits. Everything is treated as a snapshot in time but since the repository and wiki are both git, you can merge upstream changes later. There's also the concept of mirroring that'll automatically push or pull changes from other providers.

I haven't done an import/fork to Github to know how that experience is but I've done a good few with Gitlab to know that it works rather well.

There's validity to the approach of sending packet swarms to cover intrusion attempts but the traffic levels were more than a small amount of cover. It is possible that it was designed as a smokescreen and someone's calculations were wildly incorrect. No one's safe from off by one errors :>

Why not both? Take the most popular web frameworks and see how quickly you ramp up in say a week or two week sprint.

I'm more of a fan of the Ruby syntax and the Phoenix framework is definitely a breath of fresh air. My next web project wants to be with Elixir but for a generic cross platform cli program, I'm eager to learn Go.