Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "unix time"
So, I needed a package installed on one of our Unix servers. The package manager--which is obsolete garbage--was failing with a message which can only be described as a variant of "Go fuck yourself". A quick Google search didn't help.
3 espressos and an eternity later, I have descended into a manic state. My hair has turned grey and I have started lactating. As a last-ditch effort, I try a new search query on Google, and the first link takes me to a forum with a thread discussing a similar issue. The last post in the thread has a solution which works for me. After fixing the issue, everything in the world feels right and I decide to thank the generous poster, who is like an angel to me at this point.
Guess what? The poster is none other than me. 8 months back, I had created a user account on the forum just to post the solution to a similar issue I had on another server.13
If Operating Systems Ran The Airlines
Everyone brings one piece of the plane along when they come to the airport. They all go out on the runway and put the plane together piece by piece, arguing non-stop about what kind of plane they are supposed to be building.
Everybody pushes the airplane until it glides, then they jump on and let the plane coast until it hits the ground again. Then they push again, jump on again, and so on ...
All the stewards, captains, baggage handlers, and ticket agents look and act exactly the same. Every time you ask questions about details, you are gently but firmly told that you don't need to know, don't want to know, and everything will be done for you without your ever having to know, so just shut up.
The terminal is pretty and colorful, with friendly stewards, easy baggage check and boarding, and a smooth take-off. After about 10 minutes in the air, the plane explodes with no warning whatsoever.
Windows NT Air
Just like Windows Air, but costs more, uses much bigger planes, and takes out all the other aircraft within a 40-mile radius when it explodes.
Disgruntled employees of all the other OS airlines decide to start their own airline. They build the planes, ticket counters, and pave the runways themselves. They charge a small fee to cover the cost of printing the ticket, but you can also download and print the ticket yourself. When you board the plane, you are given a seat, four bolts, a wrench and a copy of the Seat-HOWTO.html. Once settled, the fully adjustable seat is very comfortable, the plane leaves and arrives on time without a single problem, the in-flight meal is wonderful. You try to tell customers of the other airlines about the great trip, but all they can say is, "You had to do what with the seat?"23
Sharing a short story.
Time: 1:30 am
Conversation between me and a night watchman in my society.
I was walking and this watchman suddenly stopped me and started asking questions.
Watchman: Isn't it late at 1:30am. When do u sleep?
Me: I sleep very late (replied in a very uninterested manner)
Watchman: Which year are you?
Me: Final year of Graduation
Watchman: Which branch?
Me: (a bit annoyed now) Software Engineering
Watchman: So you know programming?
Me: (little shocked that he knows what's programming) Learning
Watchman: So, do your university teaches C, Python and UNIX?
Me:(completely shocked by his knowledge) Yup. Except UNIX, others yes.
Watchman then asked some fees related questions and placements scope.
I was annoyed when he approached me for a little talk.. But had a wonderful experience talking to this person. It's great when you meet such unexpected person having such knowledge.
When I asked him how he knows all these, he said he talks like this to many students and learnt it.
His last line to me when I said that you know a lot, was:
Sir, you are the ocean, I am a needle in it.
Truly awesome moment... Never judge anyone by looks or his occupation... Knowledge is something that anyone anywhere can gain...
Respect to that watchman...6
curl cheat.sh — get an instant answer to any question on (almost) any programming language from the command line
do curl cht.sh/go/execute+external+program to see how to execute external program in go
And this question: why I actually should I start the browser, and the browser has to downloads tons of JS, CSS and HTML, render them thereafter, only to show me some small output,
some small text, number or even some plot. Why can't I do a trivial query from the command line
and instantly get what I want?
I decided to create some service that will work as I think such a service should work.
And that is how wttr.in was created.
Nowadays you probably know, how to check the weather from the command line, but if not:
(curl wetter in Paris if you want to know the weather in Paris)
After that several other services were created (the point was to check how good the console
can solve the task, so I tried to create services providing information
of various nature: text, numbers, plots, pseudo graphic etc.):
curl rate.sx/btc # to check exchange rate of any (crypto)currency
curl qrenco.de/google.com # to QRenco.de any text
And now last but not least, the gem in this collection: cheat.sh.
The original idea behind the service was just to deliver a various UNIX/Linux command line cheat sheets via curl. There are several beautiful community driven cheat sheet repositories such as tldr, but the problem is that to use them you have to install them first, and it is quite often that you have no time for it, you just want to quickly check some cheat sheet.
With cheat.sh you don't need to install anything, just do:
curl cheat.sh/tar (or whatever)
you will get a cheat sheet for this command (if such cheat sheet exists inf one of the most popular community-driven cheat sheet repositories; but it surely does).
But then I thought: why actually show only existing cheat sheets? Why not generate cheat sheets or better to say on the fly? And that is how the next major update of cheat.sh was created.
Now you can simply do:
and get your question answered
(cht.sh is an alias for cheat.sh).
And it does not matter what language have you used to ask the question. To be short, all pairs (human language => programming language) are supported.
One very important major advantage of console oriented interfaces is that they are easily
programmable and can be easily integrated with various systems.
For example, Vim and Emacs plugins were created by means of that you can
query the service directly from the editor so that you can just write your
questions in the buffer and convert them in code with a keystroke.
The service is of course far from the perfection,
there are plenty of things to be fixed and to be implemented,
but now you can see its contours and see the contours of this approach,
console oriented services.
The service (as well as the other mentioned above services) is opensource, its code is available here:
What do you think about this service?
What do you think about this approach?
Have you already heard about these services before?
Have you used them?
If yes, what do you like about them and what are you missing?26
On Thursday, May 20, 2088 9:55:59 PM, my life will be complete: Unix Epoch time will equal 0xdeadbeef.10
A group of Security researchers has officially fucked hardware-level Intel botnet officially branded as "Intel Management Engine" they did so by gathering it all the autism they were able to get from StackOverflow mods... though they officially call it a Buffer Overflow.
On Wednesday, in a presentation at Black Hat Europe, Positive Technologies security researchers Mark Ermolov and Maxim Goryachy plan to explain the firmware flaws they found in Intel Management Engine 11, along with a warning that vendor patches for the vulnerability may not be enough.
Two weeks ago, the pair received thanks from Intel for working with the company to disclose the bugs responsibility. At the time, Chipzilla published 10 vulnerability notices affecting its Management Engine (ME), Server Platform Services (SPS), and Trusted Execution Engine (TXE).
The Intel Management Engine, which resides in the Platform Controller Hub, is a coprocessor that powers the company's vPro administrative features across a variety of chip families. It has its own OS, MINIX 3, a Unix-like operating system that runs at a level below the kernel of the device's main operating system.
It's a computer designed to monitor your computer. In that position, it has access to most of the processes and data on the main CPU. For admins, it can be useful for managing fleets of PCs; it's equally appealing to hackers for what Positive Technologies has dubbed "God mode."
The flaws cited by Intel could let an attacker run arbitrary code on affected hardware that wouldn't be visible to the user or the main operating system. Fears of such an attack led Chipzilla to implement an off switch, to comply with the NSA-developed IT security program called HAP.
But having identified this switch earlier this year, Ermolov and Goryachy contend it fails to protect against the bugs identified in three of the ten disclosures: CVE-2017-5705, CVE-2017-5706, and CVE-2017-5707.
The duo say they found a locally exploitable stack buffer overflow that allows the execution of unsigned code on any device with Intel ME 11, even if the device is turned off or protected by security software.
For more of the complete story go here:
I post mostly daily news, commentaries and such on my site for anyone that wish to drop by there25
They: What do you do for a living?
Me: DevOps, FreeBSD Administration, Ruby, ...
Me: administrator for UNIX systems
Me: I do stuff with computers
They: I really like Apple
.... and every time, too...10
My first semester in college I had a six-week Saturday course on how to use UNIX that ran from 9-12. The professor hada habit of going at least an hour over time each week, so by the fourth week we're getting a bit tired of it.
That particular session, right at noon, he decided to teach us how to message other people on the network. Finally, we made our way over to the wall command a half hour later. Bored to tears, I type the following into my console:
wall "Are we done yet?"
Suddenly, the projector updates:
"Are we done yet?"
Not realizing my name was going to be attached to it, I sank back into my seat a bit. The professor glared at me for about 5 seconds, then promptly wrapped up. Future class sessions ended on time.
Got a call from Google!
Asked for two months to study: Discrete mathematics, Calculus, introductions to algorithms, design patterns, CTCI and linux/unix OS workings in general.
I know I'll be banging my head against the wall and I don't have my expectations too high. But regardless I feel like this is a good excuse to speed up my studies and push myself in the direction I want to go already. It'll be a win-win even if I don't land the position because I'll definitely gain a ton in the process of preparing.
I will be expose to all of this material (except for calculus because I've been learning it for a couple of months) for the first time so I know it'll be a challenge and I am looking forward to it.
If any of you have any tips on good study habits that'll be much appreciated; I currently like to read most of my material and supplement with videos/tutorials... Khan is great but they lack material on discrete mathematics unfortuantely. Thanks in advance!
Wish me luck (:9
That moment that you come across a domain name which you thought would have definitely been taken already.
Came across strtoti.me. (php function for converting date/time strings into unix epoch's). Quickly wrote an api for it and put it online because fuck it, why not!
Feel free to use it as much as you want, I can't guarantee its availability unless it would become really popular but I can't imagine that.
API example: https://strtoti.me//... 20 20:15
API example (url encoded): https://strtoti.me//...
API documentation (not that good yet, might improve it..): https://strtoti.me
Well, let's see how this goes. Feedback appreciated but I currently have a shitload of projects to it doesn't have the highest priority right now!12
When I was 23 or so, I worked nights in a tier-1 control room. Each workstation had a win98 desktop, and two HPUX workstations running CDE. I read all of the lord of the rings in text files on the HPUX machines, and since it was in an xterm window, my supervisor thought I was just tailing logs.7
When I was in college, our email was on a Unix server. We would login via serial connection or telnet over the network, and get a korn shell. The server was poorly secured. Everyone's login device was world writable. So people would just see who was online, see the username of someone they wanted to mess with, take note of the pts(network) or tty(serial) device their connection used, and cat ASCII penises to it.
cat animated_dong.txt > /dev/pts/4
It was a simpler time.2
I love how the Keybase Linux client installs itself straight into /keybase. Unix directory structure guidelines? Oh no, those don't apply to us. And after uninstalling the application they don't even remove the directory. Leaving dirt and not even having the courtesy to clean it up. Their engineers sure are one of a kind.
Also, remember that EFAIL case? I received an email from them at the time, stating some stuff that was about as consistent as their respect for Unix directory structure guidelines. Overtyping straight from said email here:
[…] and our filesystem all do not use PGP.
> whatever that means.
The only time you'll ever use PGP encryption in Keybase is when you're sitting there thinking "Oh, I really want to use legacy PGP encryption."
> Legacy encryption.. yeah right. Just as legacy as Vim is, isn't it?
You have PGP as part of your cryptographic identity.
> OH REALLY?! NO SHIT!!! I ACTIVELY USED 3 OS'S AND FAILED ON 2 BECAUSE OF YOUR SHITTY CLIENT, JUST TO UPLOAD MY FUCKING PUBLIC KEY!!!
You'll want to remove your PGP key from your Keybase identity.
> Hmm, yeah you might want to do so. Not because EFAIL or anything, just because Keybase clearly is a total failure on all levels.
the Keybase team
> Well that's fucking clear. Could've taken some time to think before hitting "Send" though.
Don't get me wrong, I love the initiatives like this with all my heart, and greatly encourage secure messaging that leverages PGP. But when the implementation sucks this much, I start to ask myself questions about whether I should really trust this thing with my private conversations. Luckily I refrained from uploading my private key to their servers, otherwise I would've been really fucked.1
1. Scripting out a team. I've built a collection of bash scripts to do what one of our teams does. Except the script does it in 30min and always does it well where that team used to take 4 to 10 hours and almost always missed something in the way.
2. Automate 70-80% of our BAU tasks with a single >4k loc bash script. Integrations with servicenow, lots of internal portals, predefined huge sets of commands to run on separate servers or lists of servers, do all sorts of diagnostics, schedule hw maintenance for DC folks, chase for approvals, track CHNG/CTSK tickets in a graphical chart so we would not miss any of them and lots lots more.
Finally we were able to afford time to make some coffee/tea.
These are the bau optimizations I'm proud of the most. And they have made significant impact on how our teams operate.
Whoever recognizes both company values in the tags and know what is that company - are they still using ´S´ in unix team? :)1
Had a great time yesterday explaining a C++ dev on a UNIX box that yes, he actually has to shut down his machine before adding this new extra 8gb memory...4
Just spent 15 minutes trying to explain Unix time and Y2K to a liberal arts major who wanted to know why 2038 is such a huge deal. It was technical, frustrating, and challenging. Kinda like debugging3
I previously worked as a Linux/unix sysadmin. There was one app team owning like 4 servers accessible in a very speciffic way.
* logon to main jumpbox
* ssh to elevated-privileges jumpbox
* logon to regional jumpbox using custom-made ssh alternative [call it fkup]
* try to fkup to the app server to confirm that fkup daemon is dead
* logon to server's mgmt node [aix frame]
* ssh to server directly to find confirm sshd is dead too
* access server's console
* place root pswd request in passwords vault, chase 2 mangers via phone for approvals [to login to the vault, find my request and aprove it]
* use root pw to login to server's console, bounce sshd and fkupd
* logout from the console
* fkup into the server to get shell.
That's not the worst part... Aix'es are stable enough to run for years w/o needing any maintenance, do all this complexity could be bearable.
However, the app team used to log a change request asking to copy a new pdf file into that server every week and drop it to app directory, chown it to app user. Why can't they do that themselves you ask? Bcuz they 'only need this pdf to get there, that's all, and we're not wasting our time to raise access requests and chase for approvals just for a pdf...'
oh, and all these steps must be repeated each time a sysadmin tties to implement the change request as all the movements and decisions must be logged and justified.
Each server access takes roughly half an hour. 4 servers -> 2hrs.
So yeah.. Surely getting your accesses sorted out once is so much more time consuming and less efficient than logging a change request for sysadmins every week and wasting 2 frickin hours of my time to just copy a simple pdf for you.. Not to mention that threr's only a small team of sysadmins maintaining tens of thousands of servers and every minute we have we spend working. Lunch time takes 10-15 minutes or so.. Almost no time for coffee or restroom. And these guys are saying sparing a few hours to get their own accesses is 'a waste of their time'...
That was the time I discovered skrillex.6
I have been using Linux based system from so long but last week I was building outlook add-on using Visual studio. It was a nightmare to work on visual studio(Or any IDE in Windows) after working for a long time on Linux/UNIX based systems. So much of mouse clicks, worst console experience, etc. Windows is definitely not for developers.11
>Installed a new graphics card (thanks santa <3)
>Boots into Ubuntu
>Try to SSH. No route to device.
>Log in locally. "Failed to start raise network interfaces"
>find out that installing graphics card renamed enp2s0 to enp3s0.
I was reminded of people's posts about preferred text editors in another post, so I thought I'd do the same, but also add some super old technology that I used along the way.
The first text editor I consistently used was pico. I used it to write my first webpage at school.edu/~username. It was a natural choice, because the it was the default text editor in pine, which is what we would all use for our email after opening a serial connection to the college's Digital Unix server. Or if we were the lucky ones who had a computer in a wired dorm, telnet. My dorm was not wired until my sophomore year.
I got my first job in tech in 2001, working as a night shift tier-one support technician. By this time, most people were using web based email, or POP3, but I wanted to keep using pine (or elm, or mutt) because I was totally in love with the command line by this time, and had been playing with Linux for two or three years by now. I arranged a handshake deal with a guy in my home town who had a couple well-connected NetBSD servers, to let me have an account on one for email and web hosting (a relatively new idea at the time).
I recall telnetting into my shared hosting account from the HP-UX workstations we had in the control room. I would look at webpages on HTML conventions and standards, and I kept seeing references to this thing called vi. I looked into it more deeply, and found that it was a text editor, and was the reason I always had to CTRL-Z out of elm. I was already finding pico to be lacking, so I found a modern implementation of vi called vim that was already installed on the aforementioned NetBSD server, and read through vimtutor on it. I was hooked instantly. The modality massively appealed to me, and I found editing files to be an absolute delight, compared to pico, and its nascent open source offspring/successor, nano.
My position on that hasn't changed in the years that have passed since then.
What's your text editor origin story?1
Got my unix stickers today 🤓
Thanks to @gitlog for telling me about this and also to the person who posted it here for the first time7
Man, people have the weirdest fetishes for using the most unreadable acrobatic shell garbage you have ever seen.
Some StackOverflow answers are hilarious, like the question could be something like "how do I capture regex groups and put them in a variable array?".
The answer would be some multiline command using every goddamn character possible, no indentation, no spaces to make sense of the pieces.
Regex in unix is an unholy mess. You have sed (with its modes), awk, grep (and grep -P), egrep.
I'll take js regex anytime of the day.
And everytime you need to do one simple single goddamn thing, each time it's a different broken ass syntax.
The resulting command that you end up picking is something that you'll probably forget in the next hour.
I like a good challenge, but readability is important too.
Or maybe I have very rudimentary shell skills.5
Don't you just hate ignorance of others? I sure do. Don't you just hate when you try to tell someone something, but the person on the receiving end is like "Well, it's not my job, so I cannot relate, so I am not going to listen to you at all."
Now, let's talk about a little thing called PRIVACY. Whenever people ask me "Why do you not use Google Chrome, but you use firefox instead?" I always answer "Because it does not compromise your online privacy as much." But, those idiots never listen. The same goes with me being in favor of Unix-like systems such as MacOS and Linux. But they for some idiotic reason do not care for online privacy. They go for the "convenience". I know Google uses the data it collects to "help" you find better results. But the problem is is that you do not get a say in the choice that the algorithm chooses. Also, I know Google might say "Oh, we never look at your files and your information," and it is indeed true that most of the time when you try to research about the cons of Google using Google, only the pros of Google will pop up. Now, if I go onto DuckDuckGo or Bing or even Yahoo!, the results are going to be quite different. I have been using Gmail since about 2011. I have not switched because mainly of Youtube and because I have been using it for so long. True I have two other accounts, which are AOL and Hotmail, but I barely use them, and when I will be 100% concerned about my privacy, I am probably going to switch to AOL.
You might think that it is hypocritical of me to use Gmail, but have you ever tried switching from an email address that you have been using for years? It is hard. So I do the next good thing, and encrypt my emails whenever possible (GOD BLESS PGP). I know Google says that it itself encrypts the Emails itself, but, how can I trust such an advertisement monopoly? I mean, the encryption means nothing if they have the secret key, if needed, they'll just decrypt my email and read the fucking thing. That's why I have my own set of Public and Private keys, and I recommend you too encrypt your Emails, especially any sensitive data that you ever send. I am also buying a web camera cover, because I really do not trust the folks at the NSA and the CIA and all other 3 letter government agencies. But people always tell me "But how can I be significant to the government, I have nothing to hide," which is a fucking lie, EVERYONE HAS GOT SOMETHING TO HIDE.There cannot be freedom of speech if the government constantly sees what you're saying. I wish there were more people in the world like Snowden :/4
Hi, my name is bohr and I'm a recovering distro hopper.
It all started with Ubuntu, out of my frustrations with the unintuitive nature of DOS I gravitated to a Unix environment which Ubuntu naturally solved. But I quickly became annoyed with the laggy nature of it's daily usage. So I switched to Linux mint. Loving the HTML/css/js configuration aspect of cinnamon I thought it was the answer to all my problems. But I became annoyed with apt and it's lack of a few programs I wanted. This got me to look into an arch based distro, because pacman seemed like the answer to my problems. Unfortunately there are way too many arch distros to use. I experimented with antegros' many DE options: gnome, kde, i3, deepin, openbox... Always finding something wrong. I tried manjaro and it's many flavors, still being annoyed with minute aspects of the os. Out of frustration, with the deep configuration settings I was getting into and the need to actually focus on the work being done on the computer I crawled back to Linux mint. But now my friends, I have decided that maybe it's time to just use a more established distro? Maybe gnome isn't actually that bad? Maybe I need to give it another try? And that is why, I promise, this is the last hop for me. Arch Linux, Gnome here I come and I'm ready to commit this time!...
But have you guys seen POP!_OS? Woah, I bet it would solve all of my problems....7
I love Unix systems because everything goes smoothly most of the time but today... Fuck me... I just wanted to see how many lines my script was with "wc - l" but I couldn't remember "m" or "w". 180 degrees separated despair and monotony, although I didn't know it yet. I did "mc - l" first and midnight logged empty ftp buffer to my file. Goodbye Thursday and Fridays work :) I should commit more often.4
Since my first post was a success, here's another shameless hack-- in this case, ripping a "closed" database I don't usually have access to and making a copy in MySQL for productivity purposes. That was at a former job as an IT guy at a hardware store, think Lowes/Rona.
We had an old SCO Unix server hosting Informix SQL (curious, anyone here touched iSQL?), which has terminal only forms for the users to handle data, and has keybindings that are strangely vi based (ESC does commit changes. Mindfsck for the users!). To add new price changes to our products, this results to a lengthy procedure inside a terminal form (with ascii borders!) with a few required fields, which makes this rather long. Sadly, only I and a colleague had access to price changes.
Introducing a manager who asks a price change for a brand- not a single product, but the whole product line of a brand we sell. Oh and, those price changes ends later after the weekend (twice the work, back at regular price!)
The usual process is that they send me a price change request Excel document with all the item codes along with the new prices. However, being non technical, those managers write EVERYTHING at hand, cell by cell (code, product name, cost, new price, etc), sometimes just copy pasted from a terminal window
So when the manager asked me to change all those prices, I thought "That's the last time I manually enter all of this sh!t- and so does he". Since I already have a MySQL copy of the items & actual (live) price tables, I wrote a PHP backend to provide a basic API to be consumed to a now VBA enhanced Excel sheet.
This VBA Excel sheet had additional options like calculating a new price based on user provided choices ("Lower price by x $ or x %, but stay above cost by x $ or x %"), so the user could simply write back to back every item codes and the VBA Excel sheet will fetch & display automatically all relevant infos, and calculate a new price if it's a 20% price cut for example.
So when the managers started using that VBA sheet, I had also hidden a button which simply generate all SQL inserts for the prices written in the form, including a "back to regular price" if the user specified an end date, etc.
No more manual form entry for me, no more keyboard pecking for the managers with new prices calculated for them. It was a win/win :)1
I normally just have nightmares about the projects I'm working on, especially when I struggle with a bug for days. Those are usually about just me stressing out about it. However, I have a lot of dreams about computers/technology, not necessarily coding-related:
- datacenters were just potato fields. If you go work the field, you'd go data mining
- in Biology, when being taught how having children works, you only tell that "parenting is only chmod-ing the rights of your children until they become the owners themselves"
- IP addresses with emojis instead of numbers were a standard now and they actually managed to replace IPv4, because everyone was so into emojis. They named it IPvE
- I witnessed a new Big Bang when the 32-bit Unix time overflown in 2038, and we were all quantum bits3
Recently got around to dual booting my home machine with Ubuntu.
Now every time I log in, in my head i hear the kid from Jurassic Park exclaim "this is a unix system!"1
I used to be a sysadmin, which meant I was in charge of quarterly server patching. My team managed about 2500 servers, running various flavors of linux and legacy unix. The vast majority(95% or more) ran Linux(SLES). Our maintenance window was always in the overnight-- 10pm to 6am --so the stroke of 10pm would be a massive cascade of patching commands sent to hundreds of servers.
Before I was brought into the process, it made use of the automation product we were tasked by mgmt to use: Bigfix. It's a real piece of shit. Though we had 2500 or so servers, this environment was dominated by windows. All our vcenter servers ran it, and more importantly, our bigfix nodes were all windows machines. That meant that while we're trying to patch, the bigfix servers would get patched by the windows team. This would cause lots of failed and timed out patching, because the windows admins never quite understood that taking down the automation infrastructure would cause problems.
As such, I got tired of depending on a bunch of button-pushing checkbox-clickers who didn't know shit about shit, so I started writing an ssh-wrapped patching system. By the time I left for my current job, patching had been reduced to a single command to initiate each group's patching and reboots, and an easy check to see when servers come back up. So usually, the way it worked out was that I would send patching orders to 750 machines or so, and within about 5 minutes, they would all be done patching, and within another 20 minutes all the ones that required rebooting but about 5 would be done rebooting.
The "all-nighter" which happened every time was waiting for oracle servers to run timed fscks against a dozen or so large filesystems per server, because they were all on ext3/4, which eats complete shit. Then, several hours later, as they finished, I would have to call the DBAs to tell them to validate their shitty servers.3
Hmm. I guess it depends on how in depth dev experience we want to go. I played around with DOS and Basic when I was 12 used to use my mom's uni credentials to access Arpanet and Unix command line. In the late 80's, dialing into bbs's on 2400 baud modem. I made a lot of .bat scripts and Basic scripts that did very minor things, don't remember what though lol.
After going into Marine Corps in 1994 sort of lost technology for that entire time. Was a UH-1N and AH-1W airframe technician.
It wasn't until about 2002-3 when a friend wanted to start his own business and needed a webpage I started with Microsoft Frontpage to make it. Wysiwyg all the way.
In 2006-7 I think I heard about WordPress for first time. Same friend wanted to build a site with it for his business. This is when I got serious about learning I guess.
My first introduction to PHP. Realized how complicated programming actually is. I think about 2009 I started taking tutorials online, but it wasn't until 2012-3 I got serious and made plan to become professional dev. Started off with programming books, doing courses online, and in 2015 got my first job as a Junior PHP dev.
I know this goes beyond my first dev experience, but really I think my first experience spans decades.
hey guys yesterday I got roasted cuz I was using a pc instead of Mac for development work and this was my reply. For me I don't gonna spend 2000+ $ only for 1 sec faster app loading and only for writing codes if someone willing to spend lot of money then they have completely command on there system Mac is very overpriced and overprotective it doest allow dual boot tell u what Mac sucks in 4k video editing,games,it don't even support maya or 3ds max rendering on Mac is gonna hit you hard , and there is same for linux but because it's free I don't much care about it but it is extremely crash and error prone I've installed Ubuntu nearly 20+ computer and after few days some kind of internal error occurred if u cancelled any ongoing installation it's going to hijack your system not let order program to install unless you manually clean that shit out ,yea Unix systems have bit faster app opening time and I appreciate that .
For nerds like me it's not only about coding stuff I like to do crazy stuffs17
I too got my $1 unix sticker pack (thank you very much whoever posted this by the way) and thought posting a picture of them would be redundant
First thing when I brought them to work to show them or to my colleagues I stepped out of my car and they all fell to the soaking wet ground (it was pouring down at the time)
Luckily they're of very high quality and still intact 😊11
semi dev related(later half)
A common and random thought I have:
A lot of units that humans use are either needlessly arbitrary or based on something weird. Like Fahrenheit. That shit is weird! 0°F is the freezing point of a water and salt solution. What a weird fucking thing to use!
But also, I like Fahrenheit more. Probably because it's what I was raised with and switching is tedious (though I'm trying. I'd like to use metric more), but also because one degree F is a smaller, more precise change. You can describe more accuracy without decimals.
On the other hand I prefer metric for length. Centimeters, and centimeters are way more precise and way less confusing than inches and .... 1/8th inches? Who the fuck decided on 1/8ths?!
Which brings me to my common thought:
If you look at a Unix timestamp, you can approximate somewhat when it happened. Knowing the current timestamp and a few reference points you can see RELATIVELY what a epoch stamp translates to. A few days ago, an hr ago, 2014ish.
This leads me to think that if we actually taught from a young age to think in epoch as a unit (not as a replacement to normal date formats but as a secondary at first) that we could just naturally read epoch time in the same manner we read dates like "28/01/2006 14:24:10 UTC"
In your brain you automatically know how old you were when that timestamp happened. What grade/job and where you lived at the time. What season it was. You know how far into the day it was, a little before lunch (or after or whatever, your time zone will vary). Now try with 1138458250. I can usually get roughly the year, and month if I really think about it, but that's it. And it takes much more effort
I'm sure there's other units we could benefit from but epoch is the one that usually brings this to mind for me.13
Last weak I tried to use Linux Arch on my VM. The only Linux distribution I'm used to is Ubuntu and the fist time I launched Arch I completely forgot that it was " do it yourself ". And that the ISO isn't actually a fancy installer like the Ubuntu one.
So I started following a guide and found out that the arch wiki is actually the way to go.
I searched for 1 hour how to change the keyboard to swiss-french which was actually pretty simple.
After that exhausting research that made me realise how ignorant I am with UNIX universe, I finally tried to install the thing.
When I was done installing, it didn't want to boot after I restarted. I got stuck at the 'Booting...' screen. After a few tries I lost all my energy and motivation.
Tl;dr: Tried Arch Linux, realised I had no idea, gave up after a few tries5
Without Unix, there would have been no Minix (Tanenbaum et al.) orGNU (Richard Stallman et al.).Without Minix, there would be no inspiration to write Linux. Remember that Linus started his “project” because he didn’t like many of the design decisions Tanenbaum has taken in Minix, including the microkernel. In fact, Linus has tried to submit some changes to the professor and the latter rejected them. So the young chap decided to write his own kernel using his design.Without GNU, there would be no open source tools that Linus himself used to write, compile, test and distribute his project, to become a few years later a global phenomenon. Also, the fact that GNU was already an established Unix clone (minus an operating kernel) at that time helped Linus to focus on the missing part, the kernel. Otherwise, he would not have known where to start.And finally, Unix was the template all of the above (and more) were trying to imitate. Without it, there would have been nothing to clone from.1
How do you approach generating "random" unique numbers/strings ? Exactly, when you have to be sure the generated stuff is unique overtime? Eg. as few collisions in future as possible.
Now I don't mean UUIDs but when there is a functionality that needs some length defined, symbol specific and definitely unique data, every time it does it's stuff.
TLDR STORY: Generating 8 digits long numbers so they are (deterministically - wink wink) unique is hard but Format Preserving Encryption saves the day. (for me)
I had to deal with both strings and codes today.
One was to generate shortlink word for url, luckily found a library that does exactly this. (Hashids)
BUT generating 8 digits long, somewhat random number was harder then I thought, found out on SO something like "sha256(seed) => bytes => ascii/numbers mangling" but that had a lot of collisions because of how the hash got mangled to actually output numbers and also to fit the length.
After some hours I stumbled upon Format Preserving encryption (pyffx) and man it did what I wanted and it had max 2 collisions in 100k values. Still the solution with this feels hacky af. (encrypting straddled unix timestamp with lots of decimals)6
Next time you think you’re failing at a new open source venture, remember the stories of your UNIX ancestors (eunuchs ancestors?) ;)
Unix at 50: How the OS that powered smartphones started from failure
Today, Unix powers iOS and Android—its legend begins with a gator and a trio of researchers.
Once upon a time there was a DOS user who saw Unix, and saw that it was
good. After typing cp on his DOS machine at home, he downloaded GNU's
unix tools ported to DOS and installed them. He rm'd, cp'd, and mv'd
happily for many days, and upon finding elvis, he vi'd and was happy. After
a long day at work (on a Unix box) he came home, started editing a file,
and couldn't figure out why he couldn't suspend vi (w/ ctrl-z) to do
(By email@example.com (Erik Troan)
found on Terminal Fortune2
Update on the BSoD of my previous rant. Guess what? I STILL HAVEN'T FUCKING FIXED IT.
As a Unix operation system user (MacOS primary, Ubuntu Linux secondary) I have never experienced ANY of the problems I am currently experiencing. I mean, seriously, every time I went into sleep/hibernation mode on Windows, IT WOULD FUCKING BSoD ME! I tried reinstalling it, disassembling the computer and making sure that the hardware is fine, AND IT STILL WOULDN'T WORK.
And for the final step, I booted from a live Ubuntu USB to check if this is truly a hardware or a software problem. I booted in successfully, started up a few built in apps and went to sleep. I made sure that all of the fans turned off and that the computer was silent. I let it sit for five minutes and then turned it back on. It turned on just fine. Prognosis: definitely a problem with Windows.
My plan currently is to COMPLETELY erase my 500GB SSD using my live Ubuntu USB and reinstall using Live Windows USB. If that does not work... I will be officially giving up on the Microsoft Windows Operating System for good.
And what is the reason why a Mac/Linux person is trying to get Windows on the PC tower that his uncle gave him? I wanted to install some old games which only work on Windows and on nothing else. I have never been successful with Wine. It was either laggy or never worked. If any of you can help me here, here's the crash code the BSoD gave me: DRIVER POWER STATE FAILURE.
P.S: I am typing this message from the Live USB. I don't know why I had to say this, but I had.7
Can someone explain linux to me? I can't see through Unix, Linux, GNU, mingw and all those things which somehow seem to be in the same context but i would like a tl;Dr to save my time :)2
I am stuck on a UNIX legaxy project. This is the perfect time to learn awk, sed, vim. I use them but I wanna get better.
I can read a book, course, but I WANT to write code, maybe something like the hackerrank challenges but harder.
How do I get advanced in awk, sed, vim?7
Hi fellow DevRanters! I've been studying software engineering for a while now and, while I love programming, I'm starting to think that all I'll be doing as a software engineer now a days is pulling data from a database, sticking it in a nice gui with some buttons and moving on to the next, similar, project. At the same time I am loving linux more and more, I love working with bash and other unix-like tools and I am interested in systems languages like C and Rust. It is for these reasons that I am playing with the idea of switching to Systems and network engineering. What are your thoughts on this? Is Systems and network engineering a field in which I get to program a lot? Will there be more variation in it? Is my view of software engineering completely off? Please share your thoughts and opinions!
What If one day the UNIX time turn it opposite, and starting count down to January 1, 2070. When it comes to zero, it will be the end of world.4
Was using an open source piece of software for data storage and visualisation to work with the loggers my company makes. When importing old data for historical views, some of the csv imports would fail without any specific error messages.
It took me a couple of hours but after looking at their csv parser and making my own little one to test with, I eventually found out that it was all down to the way datatime (I think it was?) in java deals with DST, which apparently was to just fuck shit up.
Anyhow, a few simple lines added into the parser later and it all works just fine.
Was super proud of that one as it was the first time I actually looked somewhat good in front of my senior dev.
Ok so, Android devs/Unix kernel builders I have a question.
How can I set `make` command to speed up the building process?
I'm very confused because of the N in the `-jN` parameter.
I read someone suggesting N=n_cores+1, btw I have an old dual core PC without hyperthreading eoth 4gb RAM.
If someone can explain me how this parameter works and how ti use it in order to minimize the building time I would be really grateful.