Probably pretty vanilla but it works:
We don’t have a massive volume of activity so the manual actions are something we can live with. We’re working on using containers for the next version, but deploying to dev, acc, … probably will always be a manual action.
So, I work on two projects at work. One is a agent, part of a distributed system, that runs in several servers and provides access to some hardware connected to said servers. We maintain some of those servers, others are run by users. The other project is a library, used by the first project.
The agent system is release once every sprint, and our sprints take 2 weeks. In the Tuesday of the second week, we ‘close’ the release: nothing merged after this will get in the release, unless it’s a bugfix. Then for the next 3 days, we run manual tests on the whole system (of which the agent is a part). If errors are found, we merge the fixes. We use a sort of trunk based development, so, if we find a bug, we’ll create a release branch and cherry-pick it there. Once we ran all tests, we manually generate a zip package (which involves creating a fresh clone, copying a bunch of files around, and zipping the resulting folder) and a) manually deploy it to the servers we maintain, and b) upload it to an internal confluence page.
It’s very manual and very error-prone. We’re finally automating some parts of it, but it’s not done yet. The system is written in python, so we could be a simple pip package, but for permission reasons (not everyone is allowed to run it), we’re not there yet.
The library is kinda worse. First, it has a binary dependency, that lives in separated repositories, so we have to make sure we keep the versions synced. It’s also a python project, but also not packaged as a pip package. The way it’s release is: We compile the binary dependency, copy it over to the development repo. We than commit and merge the release in the development branch. Then, we copy the changes, MANUALLY, to a “release” repository, commit it in there, and merge it. The users get the updates from the release repository, and we work in the development repository. I tried to sync the repositories history, to simplify this freaking mess, but there are manually applied changes in the release repository that make it impossible (or nearly) to just squash and push the changes from the development repo to the release repo.
I recently wrote a small makefile to automate some of this terrible process, and my plan is to bring all this crap together in a single repo, split the library into two parts, and package both of them as proper pip-installable packages, but we’re a fairly long way from that, yet.
Tell me that ain’t painful.
Oh, also important to note: the agent system has some automated tests, that are supposed to run for every pushed commit and give it a -1 code review if it fails. That’s broken, currently, and because our PO is a , we haven’t had time to fix it yet. When it used to run, it was a good thing, but we don’t have lots of coverage, and the main server (that controls all agent servers), has almost no automated tests, so, there’s that.
The library has some unit tests, but it’s a library to communicate with smartphones, so, there’s only so much test you can do without actually connecting it to a real phone and testing it. We do have a separated repo with integration tests that use real hardware, but it’s completely broken and I haven’t got time to fix it yet. So right now the reality is: I run the unit tests before a release, run a basic connection test, and hope for the best =/ Our release cycle is pretty tiny, one week, and we have release a worrying amount of bugs into production in the last months. I raised that with our manager and got the usual “Yeah, we should worry about that” response that will likely turn into no actual action.
Thanks for elaborating. I think that managers can be motivated by costs sometimes. If you add up the time it takes to do all the manual steps, say, over a month, then the effort required for automation might look more attractive. Maybe you could show that it will pay off within 6 months or a year.
Your comment doesn’t answer the OP’s questions and doesn’t contribute anything to the discussion. Please write something useful instead. I’m disappointed that several people thought this one-word comment should be upvoted.
It would be better if lobste.rs didn’t devolve into obvious one-word jokes. There’s already Reddit.
Please don’t post snarky, unsubstantial comments like this. They’re the candy of forums: delightful for a sweet moment and ruinous in quantity.
I don’t want to sound arrogant but just stating ‘Painful.’ doesn’t seem to be helpful imho… Care to explain why it’s painful en what actions you have taken/you will take to make it less painful?
I have a birthday party coming up of my eldest, the party is going to be in the woods and there is going to be a treasure hunt. That’s going to keep me busy for some time…
I’m also going to continue with my scraper project and try to add at least one other site. I’m using xpath queries to select the data, but it’s the first time using them so there is a learning curve.
Hopefully getting my home network up and running so I can put the wifi access point back on the hall ceiling. It’s almost there, but pin 4 isn’t showing up as connected according to my cable tester, so there’s a few punchdowns to check along the route. Of course one of them is underneath the bedroom floor, which won’t be fun to get to.
Also spending yet more time in the car going to visit my friend for the weekend. (I usually drive about 30 miles in a week, this week I’ve done about 800 so far.) Looking forward to a social weekend, it’s been a hell of a week.
There are tools that will tell you around what length the cable is broken. If you have some friends in the networking field ask them if they have one you can borrow.
My old desktop motherboard had this in the BIOS for the built in NIC. I can’t 100% remember what it was, but i think it was a gigabyte with an AM3 socket. Might be worth checking that if you have any desktops sitting around.
Hah, it turned out to be a couple of issues. One on cable run I’d just plain punched down blue/brown pairs the wrong way, and on the other run I’d just not punched down one of the pins. Once the physical stuff was actually connected, the whole thing started working. Funnily enough.
I think the longest run I have is about 15 meters, and I pulled a minimum of two cables through where I wanted a connection (along with a spare string in each run), so if I suspect a broken cable I’ll just pull another run through.
There are quite a lot of these stations, broadcasting on different frequencies. Wikipedia has a nice list.
Unfortunately this also means a clock you buy in the US won’t necessarily work elsewhere in the world. This (IMHO) is one of those things should all agree on and use a single standard, but time and timezones are really complex. Some nice initiatives have been created like beat time from swatch but it ended up nowhere.
Escaping from a weekend-long festival almost right next to our house. For some reason they received permit to play music until whenever they want. With a couple of kids in our house it’s unbearable.
I’m also going to revamp my scraper. I’ve used it before to fetch data from realestate websites. It’s some php code that accepts a list of urls with the correct xpath queries.
I’d never heard of “snap” before, and I’m not sure I understand what it’s trying to do. Is it just a lazy way to publish closed source software on Linux? I really don’t see why I’d choose a snap over using my regular package manager.
Yes and no. Snaps are the last of many tries to have a single, uniform package format among a lot of different Linux distributions. They can be installed on *buntu, debian, arch, fedora, opensuse, …. They also offer built-in sandbox.
You are correct that a lot of propritiatory software is using it to distribute packages because it saves some time, but that’s not the main goal of the format.
Snaps are the last of many tries to have a single, uniform package format among a lot of different Linux distributions.
Unfortunately, there are at least three competing standards (Snap, Flatpak, AppImage). However, Flatpak seems to be supported in more distributions than Snap:
https://kamikazow.wordpress.com/2018/06/08/adoption-of-flatpak-vs-snap-2018-edition/
Regardless of what one thinks of such formats, they have already lead to interesting phenomena. Flatpak is, for instance, quite popular among pirates who use it to pack Windows games with a custom Wine configuration:
Then there is the Winepak project, which packages redistributable Windows software:
There is some strange things about snap: https://medium.com/@acam/im-afraid-for-the-future-of-ubuntu-2f41796073b2
I’m leaving for vacation soon, so I’m going to do some packing. I also have been downloading some Netflix shows I plan on watching, and looking for some ebooks to put on my trusty Kobo mini.
The most work related thing I’ll be doing is enabling out-of-office, and I’m very much looking forward to it!
Work: Last week of work, so lots of different things and (trying to) finish what I started. Hopefully finishing some provisioning scripts written from scratch in Python 3.6. it’s the first time I’m really using the language and it’s a bit strange. I’m still not sure if I like it or not.
Home: We bought a new car today and I’ve been looking at canbus hacking to enable features. So far I found I will have to create a custom adaptor for it, but I’ll be able to enable Android auto for free. That feature wasn’t even an option we could choose so I have zero issues enabling it. It seems there are a lot of hackers using Renault cars so I hope to be able to enable more goodies. It will take more than a month for it to arrive so I have a lot of time to research.
I’m on call this weekend so I’ll be staying around the house unfortunately… After a very rough week at work I’m planning on doing absolutely nothing. Maybe reading a bit. And taking calls of course.
I did the same thing last 2 or 3 years ago. Had Mac’s for 10years and I couldn’t justify buying a laptop where nothing was replaceable or serviceable. I bought a Lenovo x121 to test if I could manage and it was a pleasure to come back to Linux. I just bought a new old Lenovo x260 and it’s awesome. I stopped using Linux on the desktop when things like WiFi and battery life where shoddy at best, and X crashed regularly on all hardware I tried. When I came back everything kind of just worked and all tools I used where an apt/snap install away.
“I stopped using Linux on the desktop when things like WiFi and battery life where shoddy at best”
Did you mean laptop, since I can’t imagine that battery life is an issue on desktops?
Linux on the desktop is a reference to ‘year XXXX will be the year of Linux on the desktop’. It doesn’t refer to the computer it’s running on, but to the desktop experience in general. It’s about a large group of people using Linux desktop environment and not windows.
See: https://blogs.gnome.org/uraeus/2017/12/19/why-hasnt-the-year-of-the-linux-desktop-happened-yet/
Oh!!!! I do know the reference - I was using Linux back in 1999 - but I didn’t realize that’s what you were getting at here :)
I started messing with my dotfiles again, I already spent some time on my mutt setup this evening but it’s still pretty bare-bones. I’m not quite sure if I want to use mutt but I have used it a bit in the past and it doesn’t seem there is a whole lot of clients to choose from. I already sync all my emails using offlineimap so using a text based email client seems logical.
I’ll also be moving all services off a vps I have running on vultr to my one on hetzner cloud. It’s also running my PoC self-hosted email server so I’m seeing it as an exercise in thoroughness. To be honest, if it all goes wrong I’ll probably end up getting a fastmail account but I’d hate to give my mails up to yet another company.
Tomorrow I’ll going on a nice trip to the beach, I’m really looking forward to that. Spending time offline is something I should do more often.
I’m also starting a new book: ‘monitoring with prometheus’. I guess it still counts as offline even though it’s internet related.
By the way, if anyone knows a good time management book: shoot.
Work:
Home:
Work:
Home:
I have some sleep to catch up, and some garden work maybe. Computer stuff will hopefully include investing some more time in automation/devops things. I also want to start blogging again.
I’ve bought some nice beer, and I’m looking forward to drinking it when everybody is asleep in the house. I can use some silent me-time after a stressful week…
I bought Orval and Gouden Carolus Cuvée van de Keizer. I’m not sure if they are well known outside of Belgium but I like both of them.
I’ve been spending a lot of time on resurrecting an old PBX I initially set up in 2012. I’ve done a fresh installation of Incredible on a first-gen Raspberry Pi and have configured incoming/outgoing calls with my SIP provider, as well as a hard phone on my LAN utilizing an old Western Electric phone and an OBi100 adapter. I plan on making some IVRs similar to the “Callin’ Oates” hotline so you can press something on the keypad and it plays music for you.
I’ve been thinking a lot about doing the same thing as you are and using SIP to handle the land line. I would like to re-use my existing phone too. Is the OBi100 a good recommendation or should I have a look at something else?
I think it’s a great device and reasonably easy to configure. I believe it has been discontinued by the manufacturer, but it still seems relatively cheap on the secondhand market and plays nicely with Asterisk and FreePBX. It has worked pretty well on the few phones I have tried it with, but I did notice some instability when I tried to hook two phones up to the unit with one far away. If you have more than one phone, I’d get more than one OBi and try to keep each phone as close to it as is reasonable. It’s probably some voltage drop over long runs.
I’m also purchasing an HT502 which has two lines and supports pulse dialing. I’m sure there are a ton of SIP adapter devices out there at about the same price point and they’re so inexpensive you could just throw them away if they don’t work for you.
One of the things on my bucket list for 2018 is creating a small project and let it have at least 1$ in revenue. Not profit, just revenue. I’m creating a list of some ideas but they all seem pretty bland and hard to monetize. Currently I’m pondering to do something with a tool to help schools to automate some things. This is the first time I’m doing something like this and I must admit it’s harder than I imagined.
At $work it’s going to be a though week again, lots of things to do and unexpected issues will turn up again. I’ve been working there for almost 2years now and most weeks are still full of challenges.
For reading, I’m planning to start with ‘1984’.
I would not recommend starting with an idea, however good it seems. I tried it, it doesn’t work. It’s much better to start with the right kind of research to find out what people will pay money for. This site has a lot of useful information: https://stackingthebricks.com
Sites like that recommend a course of action that really smells a lot like bait-and-switch to me. It might not be technically a crime depending on your jurisdiction / industry, but it doesn’t seem particularly honest.
That one is actually the least like what I described in that particular niche, so I guess I sounded kinda dickish. Most those “start a business” information products are just instructions on pretending you have a bunch of products, and then somehow pulling the one that gets the most bites out of your ass in a month. I find the idea of advertising something I don’t have and probably will never build extremely distasteful.
To be clear, I think it’s nothing like what you are describing, and it’s unfortunate that you chose to make the first comment, possibly putting @kamme and others off having a look, and (by association) casting me in a negative light with talk of crime and dishonesty. Please take more care next time!
I’m trying to build some small profitable services too, I’ve been finding it tough indeed (but I broke $1).
IIRC, the advice that startup factories like Y Combinator give on this issue is to identify something in a market segment that’s already painful or just could be better. You pick something you understand pretty well first. Then, you figure out how it could be done better where you or other people would enjoy. Then, you might try a startup idea based on that. They or whoever it was that I read said this leads to success the most often. Double true if it stays within domains you have a lot of experience in so you’ll avoid gotchas.
The schools is a good example of it. The people who already are in schools or deal with their IT functions have a good idea of what will or won’t fly in that market with buyers, teachers, etc. They’re the best people to do a business in that area. They’re also the best people to listen to if you want to get in it.
That’s why I’m thinking about schools, I know quite a few teachers of various age groups and different social and economical levels. Every time we have a discussion about their work I will find a couple of things that could be improved.
The hard part here would be sales. Schools are not known to be flexible and teachers often have no saying in purchases. This means I would have to target principals and administration, and this is not going to be easy to sell as they often have very tight budgets.
I’m leaning towards doing 4 or 5 smaller projects this year and probably target different audiences for each. I know this will not be Y Combinator approved, it’s an excersise to create a bit of a habit and learn different skill sets.
This means I would have to target principals and administration
Good point. Start reading up on their decision-making in acquisition. Talk to them a bit as a person that knows there’s issues with current products looking to find ways to improve things for both them and teaches. You get it straight from the kind of people you’ll be selling it to. You can also note what you’ve learned from teachers’ problems for effectiveness. I’m sure you were already going to do that, though.
If budgets are tight, maybe SaaS model with an upfront discount on licensing where you tell them you’re just covering setup and support costs that year. This isn’t my area of expertise, though. I just know they would want minimum transition cost and/or offset. Watch out for lock-in, too, of anything that’s in an old system.
“I’m leaning towards doing 4 or 5 smaller projects this year and probably target different audiences for each. I know this will not be Y Combinator approved, it’s an excersise to create a bit of a habit and learn different skill sets.”
Oh yeah, I’m not saying go YC or anything. I was just saying experts warn to stay in stuff you have real-world experience with. Many looking for any money-making project make mistake of straying too far from that. You’re not. It’s good you’re aiming for a few projects for self-improvement with possible financial gain a bonus. Good luck on that for sure. :)
I think most of the issues the author has could be solved by a sparse git checkout. Basically you only fetch one subdirectory of the whole got repo. It’s faster, plus allows for smaller checkouts.
There is definitely thruth in the objections though, a monorepo has disadvantages too. What I did was create the monorepo and do a split to commit to the individual repo’s again. It allowed us to see if it was a match for us without changing our tooling as the individual repos where being kept up to date too. It helped us a lot to PoC it fast and don’t waste too much time.
That would definitely help to improve the git performance if the repository’s history is too big, but there are other problems such as executing only the tests for checking the correctness of the changed parts that are hard to solve. Big companies using a monorepo model such as Facebook and Google have invested a lot of effort in designing tools (and even its own build system, see https://bazel.build/ and https://buckbuild.com/) for an efficient monorepo.
I’ve been thinking to freelance in web development after $work for a couple of years now, I might just do it this year but I have no idea how to get the first clients. I’m also a backend person, I really can’t do frontend. So suggestions on how to do this are welcome.
Saving up for a small server (think Intel nuc or HPE MicroServer) and fully automate my local development environment. Also fully automate acc and prd environments.
I want to start swimming again, maybe take the bike more. In the end I want to start jogging again, but I’ll have to start slowly as my knee is fubar. All these things should be combined with the kids, I want to spend more time with them as well.
Having done freelancing for two years now, most of my contracts have come from people I know. Just mention to them that you’re open for contracts, word of mouth can go a long way sometimes.
I’ll be moving around some furniture in the living room to make space for a bigger desk.
I’m also working at a personal project scraping content from sites. I got pretty far code-wise but it currently only exists on my machine. I have been looking into deploying it with NixOS/NixOPS but cant get the containers to work like I want to (more like lxd containers). I’m probably giving up on that and will be focusing more on terraform + some deploy pipelines. I’m a sysadmin by day with some devops knowledge, but unfortunately we don’t use tools like terraform so I’m going to play with them during the weekend.