• Activity
  • Votes
  • Comments
  • New
  • All activity
  • Showing only topics with the tag "ask.advice". Back to normal view
    1. What's a good way to learn how to maintain my own computer hardware?

      I have two computers (a desktop and a laptop) that broke down just before my city entered a lockdown. Being able to assemble and fix my own computer hardware is something I have always wanted to...

      I have two computers (a desktop and a laptop) that broke down just before my city entered a lockdown. Being able to assemble and fix my own computer hardware is something I have always wanted to do, and if I knew that I would probably not be using a borrowed Macbook Air right now.

      I have no immediate need to provide any maintenance services, nor do I require a primer in electronics or anything too advanced. Just enough to know how to assemble and disassemble a machine, identify and fix the most obvious issues without breaking anything.

      I tend to learn better from sequential and structure learning materials, preferably in text/images form. But videos are also welcomed. I know the names of the things and what they are, but I don't really know how to put things together in practice.

      Suggestions? :)

      13 votes
    2. Help with wiring my house for Ethernet

      I am wanting to run a few Ethernet cables through my house to reach various rooms and electronics, and to be able to move my router to a more central location. In terms of cutting through walls...

      I am wanting to run a few Ethernet cables through my house to reach various rooms and electronics, and to be able to move my router to a more central location. In terms of cutting through walls and where to put the cables, I have figured that out, but I need some advice on what I will need in order to properly run the cables.

      I clearly need the cable itself, but I'm not sure what kind to get or what tools to get to install. I don't need anything fancy, just enough to get the job done.

      13 votes
    3. What are some pointers for managing repositories?

      Take a look, for example, at the youtube-dl repository. Now, compare that to the Tildes repository. youtube-dl, currently, has 2,667 issues and 584 pull requests! How in the heck would the...

      Take a look, for example, at the youtube-dl repository. Now, compare that to the Tildes repository.

      youtube-dl, currently, has 2,667 issues and 584 pull requests!

      How in the heck would the developers, directly involved with that repository, get organized enough to handle all of that?

      6 votes
    4. Tilderinos with experience in job-hunting/hiring for programming roles: What am I doing wrong?

      I'm an undergraduate electrical engineering student. My degree has a mandatory requirement for me to secure one more 4-month internship before I can graduate. I'll either need to find one for...

      I'm an undergraduate electrical engineering student. My degree has a mandatory requirement for me to secure one more 4-month internship before I can graduate. I'll either need to find one for summer (May-Aug) or for fall (Sept-Dec). If I can't find one, then I risk dropping out of my degree. I have a lot of student debt, so that would be a serious problem.

      I think I'm doing something wrong in my job search. I have a feeling I'm not applying to the right jobs. Or, I might be framing my skills/experiences the wrong way. Or, maybe now is just a bad time to be applying for internships?

      I would really appreciate it if you could tell me what you think I could be doing better. Feel free to be brutally honest... I feel like I've been given an opportunity (STEM degree) that I'm squandering, and I want to be whipped into shape. :(


      Experience

      • 3rd-Year Courses: Broad ECE curriculum (circuit theory, power, signal processing, control theory, embedded systems, EM wave theory, communications). No significant projects (theory only). Many assignments done in C or MATLAB. GPA was B-ish territory, if that matters.
      • 4th-Year Courses: Specialized in signal processing and data analysis (audio processing, image/video processing, computer vision, data mining, machine learning). A handful of projects using MATLAB or Python (OpenCV, numpy/pandas/etc., PyTorch). All of these were A+'s, if that matters.
      • Internship #1: I configured DSP units used to control sound systems in pools, arenas, hospitals, etc. The DSP units typically used proprietary visual programming environments (drag and drop components), with maybe some custom lua/python scripting functionality if I was lucky. It doesn't feel transferable to say "I have a Level-2 certification from QSC to design Q-SYS systems."
      • Internship #2: I did IT helpdesk support in a team for a place with 1000+ employees. Technical phone calls, imaging PCs, equipment tracking, addressing various tickets. Not much here feels transferable either.
      • Internship #3: I designed a video processing algorithm in a computer vision research lab. It tracks birds and detects when certain flight behaviors have occurred. I used Python (OpenCV, scikit-image, numpy/pandas/etc.) and git to manage my own progress. I wasn't on a team so I have no experience with handling merge conflicts, CI, or anything like that.
      • Part-time work #1: I deployed a deep learning model developed in MATLAB to perform inference on a mobile device. This involved converting the model from ONNX to the TensorFlow Lite format. I also turned my work into a Jupyter notebook so I could share it with my lab colleagues.
      • Course projects: (1) In one course, I am taking a recent CVPR paper implemented using MXNet and re-implementing it in PyTorch. (2) For my Honours Thesis, I am training a CNN to classify different bird species using PyTorch. I'm then going to integrate it into the codebase for the algorithm designed in Internship #3. (3) I implemented an audio noise reduction algorithm in MATLAB. (4) I tried to implement a video processing algorithm to transcribe chess matches in Python. (5) I compared different block-matching algorithms for video compression in MATLAB.
      • Technical extracurriculars: I have no club experience and have not participated in any programming competitions.
      • Personal projects: Nothing notable. Some small things here and there that never went anywhere because I had a hard time balancing my studies.

      Job search strategy

      Since most of my recent experience is related to computer vision (image/video processing) and data analysis (feature engineering, machine learning) I have been trying to apply for Data Science/Data Analysis internships.

      I go to indeed.com and linkedin.com, "Keyword OR" all of the languages/libraries/frameworks I have used, then submit my resume to the ones I find. I have submitted 10 or 20 applications. I also sometimes try to cold-email companies in my town. I want to stay in town because I don't want to leave my friends, so I would do remote work too. But, I would leave if it was necessary...

      I would be OK with any programming job. I don't have experience with many of the tech stacks I see for various programming jobs, though. So I don't apply, because I assume a true software engineering major would get the job over me.


      What could I be doing better?

      EDIT: Anonymized resume here: https://i.imgur.com/V8s4XLJ.png

      EDIT2: I already regret posting. This is too much information for me to process, and I don't know how to convert everyone's varied opinions and perspectives into an actionable plan. I feel overwhelmed and am shutting down trying to read your comments. I don't know what to do. But feel free to keep replying if you'd like.

      12 votes
    5. What is a good free alternative to Wordpress that requires little coding?

      I have basic notions of HTML and CSS, but nearly zero JS knowledge. I can perform simple customizations and I know how to follow instructions. It is not my intention to create anything from...

      I have basic notions of HTML and CSS, but nearly zero JS knowledge. I can perform simple customizations and I know how to follow instructions.

      It is not my intention to create anything from scratch (so the platform should have plenty of free themes), nor do I want to become a webdev or webdesigner. This is not a technical project for me, my main concern is the content.

      I currently have a blog that uses Wordpress with a purchased theme. It's good enough, but a bit slow to load. Besides, simpler platforms might be easier to understand and manipulate.

      This alternative would also need to be FOSS and easy to self-host.

      As a plus, it would be awesome if I could manage the blog/website from within Emacs/Org Mode.

      Any ideas?

      14 votes
    6. Hard drive dying, trying to save a VM

      I have a large VirtualBox VM on an external HDD. The HDD fails the S.M.A.R.T. test. The VM still works fine, but any regular attempt to copy the VM files over to a healthy drive fails ... there is...

      I have a large VirtualBox VM on an external HDD. The HDD fails the S.M.A.R.T. test. The VM still works fine, but any regular attempt to copy the VM files over to a healthy drive fails ... there is clearly already something corrupt in the VM's virtual HDD, although it is not (apparently? yet?) affecting the functionality of the actual VM.

      Any suggestions on how to save the VM? Linux Mint Guest OS, Pop_OS (Ubuntu) Host. The VM is nearly 800 GB. Both regular copy and rsync fail.

      Thanks,
      Eric

      PS: (and perhaps I should have led with this, but...) is it okay to ask these kinds of specific, technical, "help me with my tech-stuff" questions here on Tildes?


      Update to the update ... moved update info into a comment ... will keep my progress updated in that primary comment.

      Danke, y gracias to all

      14 votes
    7. Ask Tildes: Design practices for retrieving dozens (or hundreds) of related records over a RESTful API

      I'm looking for some feedback on a feasible mechanism for structuring a few API endpoints where a purely RFC-spec compliant REST API wouldn't suffice. I have an endpoint which returns $child...

      I'm looking for some feedback on a feasible mechanism for structuring a few API endpoints where a purely RFC-spec compliant REST API wouldn't suffice.

      I have an endpoint which returns $child entries for a $parent resource, let's call it: /api/parent/:parentId/children. There could be anywhere from a dozen to several hundred children returned from this call. From here, a child entity is related to a single userOrganization, which itself is a pivoting entity on a single user. The relationship between a child and user is not strictly transitive, but can each child only has one userOrganization which only has one user, so it is trivial to reach a user from a child resource.

      Given this, the data I need for the particular request involves retrieving all user's for a parent. The obvious, and incorrect solution to the problem is to make the request mentioned above, and then iterate through and make an API request to retrieve each user. This is less than very good as this would obviously be up to several hundred API calls.

      There's a few more scalable solutions that could solve this problem, so any input on these ideas is great; but if you have a better proposal that also works, I'm keen to explore that!

      Include user relationships in the call by default.

      This certainly does solve the problem, but it's also pumping down a load of data I don't necessarily need. This would probably 2x the amount of bytes travelling along the wire, and in 8 out of 10 calls, that extra data isn't needed.

      Have a separate /api/parent/:parentId/users call.

      Another option that partially solves the issue: I need data from both the child and the user to format this view, so I'd still need to make the initial call I documented earlier. Semantically, it feels a bit odd to have this as a resource because I don't consider a user to be nested under a parent in terms of database topology.

      Keep the original call, but add a query parameter to fetch the extra data

      This comes across as the 'least worst' idea objectively, in terms of flexibility and design. Through the addition of the query parameter, you could optionally retrieve the relationship's data. This seems brittle and doesn't scale well to other endpoints where it could be useful though.

      Utilize a Stripe expands-style query parameter.

      Stripe implements the ability to retrieve all related records from an API endpoint by specifying the relations as strings. This is essentially the same as the above answer, but is scaled to all available API endpoints. I love this idea, but implementing it in a secure way seems fraught with disaster. For example, this is a multi-tenancied application, and it would be trivial to request userOrganization.user.organizations.users. This would retrieve all other organisations for the user, and their users! This is because my implementation of expands simply utilises the ORM of my choice to perform a database join, and of course the database has no knowledge about application tenancy!


      Now, I do realise this problem could easily be solved by implementing a GraphQL API server, which I have done in the past, but unfortunately time and workload constraints dictate implementing a GraphQL-based solution is infeasible. As much as I like GraphQL, I'm not as proficient in that area as compared to implementing high quality traditional APIs, and the applications I'm working on at the moment are focusing on choosing boring technology, and not using excessive innovation tokens.

      Furthermore, I do consider the conceptuals around REST APIs to be more of an aspirational sliding scale, rather than a well defined physical entity, because let's face it, the majority of popular APIs today aren't REST-compliant, even Stripe's isn't, and it's usually both financially healthier and feature-rich to choose a development path that results in a rough product that can be refined later, than aiming for a perfect initial release. All this said, I don't mind proposals or solutions to my problem that are "good enough". As long as they aren't too hacky! :)

      10 votes
    8. I had an idea for an app and I'd like to talk about it

      Simply put, I encountered a practical problem a several weeks back. From that experience an idea for an app came to mind so I went online looking for what I thought would have been offered by...

      Simply put, I encountered a practical problem a several weeks back. From that experience an idea for an app came to mind so I went online looking for what I thought would have been offered by several organizations. Surprisingly, I only found one solution being offered but it didn't quite cover everything that I thought would be possible.

      I'd rather not let the cat out of the bag yet. So, I'd prefer that we talk about it through private messages with the understanding that you won't shout it from the rooftops. If this is a good idea (which I believe that it is), then I'd like the app to be developed with the GNU-GPL3 license (open source).

      5 votes
    9. Information on SaaS companies and enterprise software companies

      I would like to know more about SaaS companies and enterprise software companies from a business and technology perspective - to know about challenges in the industries, what has been...

      I would like to know more about SaaS companies and enterprise software companies from a business and technology perspective - to know about challenges in the industries, what has been revolutionary, what hasn't, where it is headed, etc. Where would be a good place to start on this?

      3 votes
    10. I want to learn programming. What language should i pick to write cli apps for linux?

      I'm interested in C or Go, but i'm open to ideas. I have plenty of sh scripts i created to integrate my tools and system, so i have some experience and i don't want a scripting language like...

      I'm interested in C or Go, but i'm open to ideas.

      I have plenty of sh scripts i created to integrate my tools and system, so i have some experience and i don't want a scripting language like python.

      My first plan is to learn the basics of the language and rewrite some of those scripts.

      I think my first pick will be a script that uses ffmpeg to convert my flac files to mp3 or opus. I use sndconv -opus/-mp3 and it checks if there are flac files in the folder (i only have full albums), converts and puts in a folder named "$artist - $album".

      My long term goal is to make a cli/tui music player like cmus.

      UPDATE: i'm having plenty of success with Go right now. I just wrote a basic version of my music conversion script. It's just converting a music i pass as argument to mp3, but i'll keep working on it and adding functionality just to dip my toes in Go. It seems like a good language and i'm having fun!

      Thanks for all the answers!

      18 votes
    11. Please criticize my idea for CHORES - a short-term TODO app for ADHD people (and myself in particular)

      Introduction I'm a beginner in programming, but a veteran in film and literature. I know that ideas come easy. Any normal person can come up with a good idea in a matter of minutes. The main...

      Introduction

      I'm a beginner in programming, but a veteran in film and literature. I know that ideas come easy. Any normal person can come up with a good idea in a matter of minutes. The main problem is doing it.

      Besides, I couldn't care less if someone does that before me. I'd probably benefit from their program, and even offer to collaborate. I have a bunch of other ideas in the oven anyway.

      And I'm humble enough to know that such a niche project would never attract the interest of a mega-corporation anyway.

      2. What is CHORES?

      CHORES is a short-term task manager. It's meant to organize nothing more than a few hours or less of your tasks. Month, weak or even your entire day are entirely out of its scope.

      3. Who is CHORES for?

      First and foremost, this app is for my use. But I'm certain there are other people with conditions similar to mine, especially ones with ADHD. I'm also autistic with a compulsive personality, and won't stop until I tinker with every aspect of an object. Not surprisingly, I'm a Linux, i3wm, Emacs and Neovim user. And they're excruciatingly customized.

      What I need is not a full-featured a TODO app like Remember The Milk, Todoist or Org Mode. They're too distracting, I end up just playing with the tools. I need something that allows me to track very short term chores. Thinks like brushing my teeth, taking a shower, eating, walking my dog, washing the dishes and making my bed.

      That's what I intend to do.

      4. What is ADHD

      From the United States National Institute of Mental Health:

      Attention-deficit/hyperactivity disorder (ADHD) is a disorder marked by an ongoing pattern of inattention and/or hyperactivity-impulsivity that interferes with functioning or development.

      4.1 Warning

      Please refrain from suggesting that the ones who use such tools just need to make an effort instead. That's a cliche most people with ADHD and other mental health issues probably heard many times, and by saying that you may cause distress. If you need more information, please refer to the link posted above.

      5. Why another "TODO" app?

      People with severe ADHD like myself frequently forget what they're doing, and what they should do in the very short term. I'm talking 2, 3 or 5 tasks from now. To give you an idea of how bad it is, right now I have an Emacs Org Mode file with the following tasks:

      * Now
      ** TODO Take Ritalin
      ** TODO Start chronometer on Ritalin
        - Tells me when the effect wears off
      ** TODO Take a shower
      ** TODO Take the laptop to the living room
      ** TODO Wash the dishes
      ** TODO Study Python
      ** TODO Post on Tildes
      

      But Emacs and Org Mode do a lot more than that, and this can be very distracting (right now I'm writing this post because creating another file from my now.org file was way too easy, for example).

      Considering that I am the main target audience of this program, any space for tinkering is a dangerous avenue for procrastination.

      6. Who is CHORES for

      The primary target of this project are people with:

      1. ADHD (Attention deficit hyperactivity disorder)
      2. similar conditions or personality traits

      In sum: if you have extreme difficulty focusing, remembering and fulfilling your tasks in the very short term, you may find this program useful.

      7. Who is CHORES not for

      The majority of people can concentrate and perform their short-term tasks with a reasonable degree of efficiency. If that is your case, you have little to gain by using CHORES.

      8. Features

      CHORES is a short-term task manager. It's meant to organize nothing more than a few hours: not your month, weak or even your day.

      1. CLI Linux app (Mac, Windows, GUI, and mobile could happen in the future)
      2. Hard limit of ten tasks (with the option to reduce)
      3. Only the very essential configurations available
      • tinkering is a huge time drain for ADHD people
      • because of that, the defaults will have to be extremely sensible.
      1. Started Stopped status clearly marked by character or highlighting

      8.1 What you would be able to do with CHORES:

      1. Add up to ten tasks
      2. Reorder/Start/Stop/Done these tasks
      3. Undo only one operation
      4. See only the last ten completed tasks

      9. Answer to Possible Questions

      9.1 Why Not Keep Using Org Mode? Or maybe Taskwarrior?

      Org Mode and Emacs are wonderful tools, but they're also a perfect playground for procrastinators. It simply does too much. Emacs is like a box of legos, and that's the last thing an ADHD person needs when it comes to tracking short-term tasks.

      Taskwarrior suffers from the same issue.

      9.2 Why Not todo.txt and similar apps?

      This may seem crazy, but for a severe ADHD person, even todo.txt gives way too many options and features. It is, after, an actual TODO app. I can add 1000 tasks todo.txt. It has an extensive wiki, projects, tags, context tags, special value tags. You might just say: just don't use these options. But that

      9.3 Why not use the extremely minimalist t task manager, by Steve Losh?

      I like t very much, and, depending on its license, I'll probably use at least some of its code. But t lacks some features CHORES requires, such as:

      1. Limit task amount
      2. Add tasks to the bottom (t last tasks randomly, or at least something that seem random to me)
      3. Reorder tasks
      4. Undo
      5. Easily view completed tasks
      6. Add Start/Stop status to a task

      9.4 Why not pen and paper?

      This is a very personal anwer, but here we go:

      1. I will lose the paper every 30 minutes
      2. I will lose the pen every 30 minutes
      3. I will forget to look at the paper, it will probably end up crumpled in my pock
      4. Many of my tasks, such as programming and studying, already happen in the computer anyway
      5. One of my medications interferes with my motor skills and my handwriting is hard to understand - even for me
      6. I like computers. The fact that I like computers makes more likely for me to actually look at the tasks.
      7. In the future, I can add alerts. Can't do that with paper
      11 votes
    12. Looking for advice on a CI / regression testing platform

      Hi all, I'm looking for some advice regarding how to set up a basic CI regression / testing suite. This isn't my full time job, but a side project my group at work wants to spin up to... shall we...

      Hi all,

      I'm looking for some advice regarding how to set up a basic CI regression / testing suite. This isn't my full time job, but a side project my group at work wants to spin up to... shall we say, give us a more real time monitoring of functionality and performance regressions coming out of the underlying software stack development (long story).

      As none of us are particularly automation experts, I was looking for some advice from my fellow Tilderinos. Please forgive me if any of the below is obvious and/or silly.

      A few basic requirements I had in mind:

      1. Can handle different execution environments: essentially different versions of the software stack, both in docker form and (eventually) via lmod or some other module file approach (e.g., TCL), and sensible handling of a node list.

      2. Related to one, supports using the products of builds as execution environments. Ideally we'd like to have a build step compile the stack and install it to a NFS from which we can load it as a module.

      3. Simple to add tests. Again, this isn't our full time job -- we mostly want to add a quick bash script / makefile / source code or the like to the tests when we run into an issue and forgot about it.

      4. Related. We should be able to store the entire thing as a git repo. I have seen this to some extent with Travis, but my experience with Jenkins was... sub-par (is there a history? Changelog? Any way at all of backing up the test config?).

      5. Some sort of post-processing capabilities. At a glance we need to be able to see the top line performance numbers for 20-30 apps over the different build environment. Bonus points if there's a graph showing performance vs build version or the like, but honestly a CSV log file is good enough.

      6. Whatever CI software we get has to be able to run this locally. Lots of these are internal only numbers / codes. FOSS prefered.

      7. A webui for scheduling runs / visualizing results would be nice, but again this could be a bash script and none of us would bat an eye.

      Any thoughts would be greatly appreciated. Thanks!

      7 votes
    13. How can I make "whereis" automatically open the file on Nvim when it is the only result?

      EDIT: SOLVED It looks like it was much simple than I thought and someone solved it on Reddit already. I won't delete, just leave the link if someone is interested. Runtime Environment OS: MX Linux...

      EDIT: SOLVED

      It looks like it was much simple than I thought and someone solved it on Reddit already. I won't delete, just leave the link if someone is interested.

      Runtime Environment

      Issue

      Sometimes I use "whereis" (aliased for "wh", but it doesn't make any difference...) for my own scripts.

      I usually copy their paths manually (using tmux) and paste to the command line resulting in something like this:

      nvim /home/my_username/my_scripts_folder/my_script
      

      Could I make that into a single command?

      Thanks in advance!

      3 votes
    14. Please tell me what you think about this idea for a text editor/Linux Distribution combo

      I know there are similar products I could buy in the US that would give me this experience, but I'm not in the US and I don't have much money. In the old days, my father had some kind of machine...

      I know there are similar products I could buy in the US that would give me this experience, but I'm not in the US and I don't have much money.

      In the old days, my father had some kind of machine that was not a proper laptop and not a proper typewriter. It opened instantly to a text editor. As far as I remember, there was no noticeable boot time. It had a keyboard and an entry for a floppy disk. You typed your stuff, saved it to the floppy disk, probably to send via email or to print in another machine. I loved that machine.

      I love these little gadgets that do one thing and one thing only. And, as someone with severe ADHD, they're often a necessity. If my Kindle had Youtube I would never read a book. If my PS4 had Emacs I would never play a game. The list goes on, but the principle is this: a lot of things are useful to me precisely because of what they cannot do.

      And that is why I wanna recreate my father's crazy computer-typewriter.

      Because I know how to use the command line, it really needs to be in total lockdown: I open it up, it shows a very simple text editor (with a few handy features that make it works even more like a typewriter) that I cannot configure, tinker or alter in any way. It's focused on writing (not editing) literature because that's what I need and other kinds of writing require an internet connection.

      It would save and back up automatically (like a typewriter) to one or more drives at your choice.

      There would need to be a few options because of different screen sizes, the number of screens etc, with an interface to make it easier.

      So the idea is an ultra-minimal, kiosk-mode Linux distribution that can either go on a flash drive or be installed on an old laptop. No package management, no internet connection, no access to the command line, no configuration files, no distractions whatsoever. I wanna forget I'm even using Linux. I wanna recreate my father's typewriter/computer that he never let me touch.

      How do I do this?

      14 votes
    15. Should I Get Into Gentoo? (x-post from /r/Gentoo)

      I've been using Linux for the past 5 to 10 years. I'm not a developer, but a mid-to-advanced user. I don't really know bash (or any programming language for that matter), but I got a folder with...

      I've been using Linux for the past 5 to 10 years. I'm not a developer, but a mid-to-advanced user. I don't really know bash (or any programming language for that matter), but I got a folder with 100 bash scripts I wrote myself. I compile my own Emacs (which I configured from scratch and contains more than 200 crudes functions of my own), Neovim (also configured from scratch) and other programs such as suckless terminal. I'm an i3wm user and currently use MX-Linux. I'm very good at Googling and pattern recognition.

      I got a brand new AMD desktop with a Ryzen processor (no dedicated graphics, wifi works fine with a USB adapter). Should I try Gentoo, or maybe I should study more (maybe with something like Linux Journey)in order to get a better experience?

      Reasons to install Gentoo:

      1. Learning experience
      2. A completely customized desktop experience
      3. Never having to reinstall my operating system again
      4. Masochism
      5. Putting my powerful processor to work
      6. It seems cool (and less painful than LFS)
      7. Some hypothetical performance gain
      3 votes
    16. I'm trying to get a programming job without a degree. Got any tips?

      Hey ~, I'm just out of high school and I want to get a programming job. I don't have a degree (I may go to college, but if I do it'll be in a few months), and little work experience. Do you have...

      Hey ~, I'm just out of high school and I want to get a programming job. I don't have a degree (I may go to college, but if I do it'll be in a few months), and little work experience. Do you have any tips that could help me have a successful job search?

      Here's my resume (somewhat anonymized, but most info is on my Github anyways). I tried to focus on experience I've gained from creating open-source projects to show the skills that I have. I've made sure that all the projects listed have demos, screenshots, usage instructions, etc. Any advice on how I could improve it would be appreciated.

      Thanks!

      22 votes
    17. Deploying containerized Docker instances in production?

      Hello! After spending many development hours in my past years running on Virtualbox/Vagrant-style setups, I've decided to take the plunge into learning Docker, and after getting a few containers...

      Hello! After spending many development hours in my past years running on Virtualbox/Vagrant-style setups, I've decided to take the plunge into learning Docker, and after getting a few containers working, I'm now looking to figure out how to deploy this to production. I'm not a DevOps or infrastructure guy, my bread and butter is software, and although I've become significantly better at deploying & provisioning Linux VPS's, I'm still not entirely confident in my ability to deploy & manage such systems at scale and in production. But, I am now close to running my own business, so these requirements are suddenly going from "nice to have" to "critical".

      As I mentioned, in the past when I've previously developed applications that have been pushed onto the web, I've tended to develop on my local machine, often with no specific configuration environment. If I did use an environment, it'd often be a Vagrant VM instance. From here, I'd push to GitHub, then from my VPS, pull down the changes, run any deployment scripts (recompile, restart nginx, etc), and I'm done.

      I guess what I'm after with Docker is something that's more consistent between dev, testing, & prod, and is also more hands off in the deployment process. Yet, what I'm currently developing still does have differing configuration needs between dev and prod. For example, I'd like to use a hosted DB solution such as DigitalOcean Managed Databases in production, yet I'm totally fine using a Docker container for MySQL for local development. Is something like this possible? Does anyone have any recommendations around how to accomplish this, any do's and dont's, or any catches that are worth mentioning?

      How about automating deployment from GitHub to production? I've never touched any CI/CD tools in my life, yet I know it's a hugely important part of the process when dealing with software in production, especially software that has clients dependent on it to function. Does anything specifically work well with Docker? Or GitHub? Ideally I want to be avoiding manual processes where I have to ssh in, and pull down the latest changes, half-remembering the commands I need to write to recompile and run the application again.

      10 votes
    18. How do you structure larger projects?

      I'll be writing a relatively large piece of scientific code for the first time, and before I begin I would at least like to outline how the project will be structured so that I don't run into...

      I'll be writing a relatively large piece of scientific code for the first time, and before I begin I would at least like to outline how the project will be structured so that I don't run into headaches later on. The problem is, I don't have much experience structuring large projects. Up until now most of the code I have written as been in the form of python scripts that I string together to form an ad-hoc pipeline for analysis, or else C++ programs that are relatively self contained. My current project is much larger in scope. It will consist of four main 'modules' (I'm not sure if this is the correct term, apologies if not) each of which consist of a handful of .cpp and .h files. The schematic I have in mind for how it should look is something like:

      src
       ├──Module1 (Initializer)
       │         ├ file1.cpp
       │         ├ file1.h
       │         │...
       │         └ Makefile
       ├───Module2 (solver)
       │          ├ file1.cpp
       │          ├ file1.h
       │          │...
       │          └ Makefile
       ├───Module3 (Distribute)
       │          ├ file1.cpp
       │          └Makefile 
       └ Makefile
      

      Basically, I build each self-contained 'module', and use the object files produced there to build my main program. Is there anything I should keep in mind here, or is this basically how such a project should be structured?

      I imagine the particularly structure will be dependent on my project, but I am more interested in general principles to keep in mind.

      14 votes
    19. I want to get into IT as a career, but I have no previous experience. What essential skills should I know?

      I've recently started taking some IT and programming classes at a local college because I've always been interested in IT as a career but I've never had any sort of professional experience in the...

      I've recently started taking some IT and programming classes at a local college because I've always been interested in IT as a career but I've never had any sort of professional experience in the field. Are there any skills that I need to definitely know, or any sort of certifications that I can get in order to get my foot in the door and start applying for IT focused jobs?

      24 votes
    20. Working as a contractor in IT

      Does anyone have any experience working as a contractor in the IT field? I have 4 years of experience in the IT industry, all of it as a full time direct hire. I may have an opportunity to work...

      Does anyone have any experience working as a contractor in the IT field? I have 4 years of experience in the IT industry, all of it as a full time direct hire. I may have an opportunity to work for a very large company on a 2 year contract at fairly reasonable salary increase. The most important part to me is that I will be getting some experience off of the service desk as well, which I can use to continue my career going forward.

      My main concern is that I am unfamiliar with contract work. I do know that I get health benefits / 401k / sick days, but I assume there must be a drawback to being a contractor, right? I feel like being a contractor is inherently more unstable than being an actual hire. The position I am being considered for is a 2 year contract, but I worry that the position could simply disappear a few months in and I'd be out of a job. Is this a fair feeling, and is there any way I can gauge how true this might be for my position? Is there something I could discreetly ask in my interview that might help me understand if this is a stable position?

      If anyone has any experience as a contractor, I'd love to hear it.

      4 votes
    21. Using ghoneycutt/pam puppet module

      Hi guys, I'm really stumped and looking for a nudge in the right direction for how to utilise the ghoneycutt/pam module in puppet. Relatively new to this but got what I'd like to think as most the...

      Hi guys,

      I'm really stumped and looking for a nudge in the right direction for how to utilise the ghoneycutt/pam module in puppet. Relatively new to this but got what I'd like to think as most the basics down.

      I've configured a few things using modules such as NTP, SSSD and NSSWITCH but I'm just stuck on how I can use this module and pull info from Hiera into it.

      So, lets start with

      .yaml file:

      
              ### nsswitch.conf authentication configuration
      
              nsswitch::passwd:     'files sss'
      
              nsswitch::shadow:     'files sss'
      
      
      

      And then looking at the nsswitch.pp file:

      
              ### nsswitch.config setup
      
              class profile::linux::base::nsswitch {
      
              # Get heira values
      
                class { 'nsswitch':
      
                  passwd    => [lookup('nsswitch::passwd')],
      
                  shadow    => [lookup('nsswitch::shadow')],
      
      
      

      Simple enough to call the values I want and works how I want, now I'm trying to do the same type of thing for PAM using the ghoneycutt/pam module and there doesn't seem to be much info on how to use it, or it's just not sinking in for me.

      Some of my PAM Heira values:

              pam::pam_auth_lines:
                - '# Managed by Hiera key pam::pam_auth_lines'
                - 'auth        required      pam_env.so'
                - 'auth        sufficient    pam_fprintd.so'
                - 'auth        sufficient    pam_unix.so nullok try_first_pass'
                - 'auth        requisite     pam_succeed_if.so uid >= 500 quiet'
                - 'auth        sufficient    pam_sss.so use_first_pass'
                - 'auth        required      pam_deny.so'
              pam::pam_account_lines:
                - '# Managed by Hiera key pam::pam_account_lines'
                - 'account     required      pam_unix.so'
                - 'account     sufficient    pam_localuser.so'
                - 'account     sufficient    pam_succeed_if.so uid < 500 quiet'
                - 'account     [default=bad success=ok user_unknown=ignore] pam_sss.so'
                - 'account     required      pam_permit.so'
              pam::pam_password_lines:
                - '# Managed by Hiera key pam::pam_password_lines'
                - 'password    requisite     pam_cracklib.so try_first_pass retry=3 type='
                - 'password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok'
                - 'password    sufficient    pam_sss.so use_authtok'
                - 'password    required      pam_deny.so'
      

      Some things I've tried:

      1:

              class profile::linux::base::pam {
                # resources
                class { 'pam':
                  password-auth-ac  => [
                    lookup('pam::pam_auth_lines')],
                    lookup('pam::pam_account_lines')],
                    lookup('pam::pam_password_lines')],
                    lookup('pam::pam_session_lines')],
                 }
      
      

      2:

      
      	
      	      passwd  => [
      	
      	      lookup('pam::pam_auth_lines'),
      	
      	      lookup('pam::pam_account_lines'),
      	
      	      lookup('pam::pam_password_lines'),
      	
      	      lookup('pam::pam_session_lines'),
      	
      	      ],
      	
      	  }
      
      
              include ::pam
      
      	class profile::linux::base::pam {
      	
      	  # resources
      	
      	    include ::pam
      
      	         lookup('pam::pam_auth_lines')
      	
      	}
      
      
      

      I've tried a few other ways and can't get it to work as I want it to. Can anyone help?

      Thanks

      4 votes
    22. What helped you succeed or improve in your field?

      As an undergrad computer science student, I'll be starting my career soon. I want to make it enjoyable, productive, avoid too many mistakes and generally try to succeed. If you want to share...

      As an undergrad computer science student, I'll be starting my career soon. I want to make it enjoyable, productive, avoid too many mistakes and generally try to succeed.

      If you want to share anything that could be beneficial to succeeding in various tech fields, either books, advice or really anything else - I'd like to hear it.

      Books
      Are there any books that you can recommend, which helped you in your career. From hard technical skills, to soft interpersonal skills required to succeed in software engineering, systems engineering, or similar fields. Books oriented towards problem solving, algorithms, good engineering practices, etc.

      A book I found recommended quite a lot, but didn't get around to reading just yet is Designing Data-Intensive Applications.

      Blogs or any other sources are welcome as well.

      A bit of background

      I'm currently an undergrad computer science student, but I started programming around 8 years ago and finished a few projects on my own. I've been working at a small software company for the past 2 years, but I don't really feel like I'm improving as much as I could - mostly due to constrained budgets and short deadlines, which don't allow me to grow. I want to read and improve my skills on my own time as well.

      I'm not sure if this topic has been discussed before - I'm new to Tildes and haven't figured out how to filter results to only display topics in ~comp.

      20 votes
    23. I'm gonna start as an algorithms monitor at my college, looking for tips on how to better help the students

      I don't know what is the correct word in English, but I'll be one of those guys who will teach a "class" consisting on answering questions and guiding them through the exercises. The content is...

      I don't know what is the correct word in English, but I'll be one of those guys who will teach a "class" consisting on answering questions and guiding them through the exercises.

      The content is very basic algorithms in C, so things like functions, pointers, and structs are off the scope. Here is the repo I made with the solutions for last semester. I'm starting in the second semester, so I have everything fresh in my memory.

      I welcome anything you can give but I'm not necessarily seeking technical advice since the teachers have that covered. What I'd really like to know is what you consider to be some good examples, attitudes, and approaches for this particular position. Thanks.

      7 votes
    24. On hiring for tech positions: How do you get what you need from the HR department?

      I wish I had a dollar for every time I heard a manager complain, “The HR department included ‘must have college degree’ in the job req even though I don’t care” or “They asked for 5 years of...

      I wish I had a dollar for every time I heard a manager complain, “The HR department included ‘must have college degree’ in the job req even though I don’t care” or “They asked for 5 years of experience in a technology that’s only been around for 3” or “I have no idea why they rejected this candidate without even contacting me.”

      Still, in many cases you don’t have a choice. If you want to hire someone, you need to deal with HR, at least to a small degree – especially if you work in a big company.

      So I’m writing a feature story for technology managers, collecting real-world advice from people who learned their lessons the hard way. Here’s the questions I’d like you to answer:

      • Tell me about a frustration you had with the HR department (in regard to hiring). That is, tell me a personal story of HR-gone-wrong. Because we all love schadenfreude, and that gives me an emotional example with which to begin.
      • Let’s say you have a new opening in your department. In what ways do you involve HR? (That could be anything from, “give them general guidelines and let them choose the best candidates for me to interview” to “I do the search myself, and use HR only for on-boarding.”) What makes you choose that path? How much choice do you have in the matter?
      • What weaknesses have you discovered in your HR department’s ability to serve the needs of a tech-focused department?
      • What have you done to cope with those weaknesses? Which of those efforts worked, and which failed?
      • What do you wish you knew “n” years ago about dealing with your company’s HR department?
      • So that I can give the reader some context: Let me know how to refer to you in the article (at least, “Esther, a software architect at a Midwest insurance company”), and give me some idea of your company size (because the processes appropriate for a 70-person company aren’t the same for one with 7,000 employees).

      You don’t have to answer all those questions! I asked these to get the conversation going. Tell me as much or as little as you like.

      Please don’t assume that I think HR always sucks. However, there isn’t as much to learn from “why HR is your friend.” The idea here is to help techie managers cope when HR doesn’t offer what you hoped for.

      16 votes
    25. Cheapest way to put a hard drive on the internet.

      I'm currently researching the cheapest off site backup system and it looks like leaving a hdd at a friends house is the best option. The only thing I am stuck on is how to access it remotely. I...

      I'm currently researching the cheapest off site backup system and it looks like leaving a hdd at a friends house is the best option. The only thing I am stuck on is how to access it remotely. I need a system on a chip that I can plug in to the hdd and Ethernet and that provides ssh access. My first thought was a raspberry pi with a sata to usb cable but since I will only be doing weekly backups it makes no sense to keep the drive spinning 24/7. I need some way to turn off the drive and then back on over the internet. From what I understand there are linux programs that can do it but only directly over sata because the command doesn't work on usb sata controllers.

      What I need is a cheap linux SoC that has sata and ethernet. Does anyone have any ideas?

      13 votes
    26. How do I hack makefiles?

      If you have built from source, then you know the relief when nothing interesting comes out of ./configure && make && make install. In fact, the less interesting the output of these commands, the...

      If you have built from source, then you know the relief when nothing interesting comes out of ./configure && make && make install. In fact, the less interesting the output of these commands, the better.

      But occasionally, the source build process is so horrifying that you end up having to modify the configure script or makefile yourself.

      So far I have only been able to do this when I was lucky enough to find some poor, destitute stranger who had pretty much the same problem as me ( most recent I can think of is GNUTLS, where I had to adjust the version requirements for nettle ) and that is a problem -- there must be some way to learn this myself.

      Is this just something that comes with time and experience, or does anyone have a reliable guide or resource for modifying makefiles and configure scripts? I would appreciate advice / discussion: I am tired of "getting lucky" with these!

      15 votes
    27. Best 120mm fans for a desktop?

      I was looking for preferences on 120/140mm case fans. RGB is a want, but not at the expense of quality fans. I'm pretty new to the topic and not super familiar with the technical side. So open to...

      I was looking for preferences on 120/140mm case fans. RGB is a want, but not at the expense of quality fans.

      I'm pretty new to the topic and not super familiar with the technical side. So open to reading more in depth too.

      Thanks!

      7 votes
    28. Where would a beginner start with data compression? What are some good books for it?

      Mostly the title. I have experience with Python, and I was thinking of learning more about data compression. How should I proceed? And what are some good books I could read, both about specifics...

      Mostly the title. I have experience with Python, and I was thinking of learning more about data compression. How should I proceed? And what are some good books I could read, both about specifics and abstracts of data compression, data management, data in general.

      15 votes