Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API

From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "runtime"
-
!rant
Has anyone been paying attention to what Google's been up to? Seriously!
1) Fuchsia. An entire OS built from the ground up to replace Linux and run on thin microcontrollers that Linux would bog down — has GNU compilers & Dart support baked in.
2) Flutter. It's like React Native but with Dart and more components available. Super Alpha, but there's "Flutter Gallery" to see examples.
3) Escher. A GPU-renderer that coincidentally focuses on features that Material UI needs, used with Fuchsia. I can't find screenshots anywhere; unfortunately I tore down my Fuchsia box before trying this out. Be sure to tag me in a screenshot if you get this working!
4) Progressive Web Apps (aka Progress Web APKs). Chrome has an experimental feature to turn Web Apps into hybrid native apps. There's a whole set of documentation for converting and creating apps.
And enough about Google, Microsoft actually had a really cool announcement as well! (hush hush, it's really exciting for once, trust me)...
Qualcomm and Microsoft teamed up to run the full desktop version of Windows 10 on a Snapdragon 820. They go so far as to show off the latest version of x86 dekstop Photoshop with no modifications running with excellent performance. They've announced full support for the upcoming Snapdragon 835, which will be a beast compared to the 820! This is all done by virtualization and interop libraries/runtimes, similar to how Wine runs Windows apps on Linux (but much better compatibility and more runtime complete).
Lastly, (go easy guys, I know how much some of you love Apple) I keep hearing of Apple's top talent going to Tesla. I'm really looking forward to the Tesla Roof and Model 3. It's about time someone pushed for cheap lithium cells for the home (typical AGM just doesn't last) and made panels look attractive!
Tech is exciting, isn't it!?38 -
Me: *uses HashMap* for a problem to count some elements*
Lecturer: why are you using HashMap?
Me: it's the best way of solving the problem
Lecturer: I haven't explicitly taught you what a HashMap is so why are you using it?
Me: Because I learn outside of what university teaches me
Lecturer: there's another way to do this
Me: enlighten me
Lecturer: iterate through the array using a nested for loop and count as you go along
Me: why the hell would I want to do that? That literally decreases the efficiency of my program by alot
GG lecturer telling me it's a better idea of making my O(n) runtime into an O(n^2) instead of complimenting my code.
Seriously what the fuck is up with the fucking education system. Since when was it okay to teach students how to completely fuck your code up and promote ways of making your code so inefficient?33 -
Every fu**in time!!joke/meme funny android crash ++ shower java nullpointerexception exception c++ runtime errors meme/joke4
-
Finding the bug. The usual flow:
"Omg! I think it's a bug in the compiler"
10 minutes later:
"OK, it surely is a bug in the runtime"
20 minutes later:
"I'm certain this is a bug in the core library"
2 hours later:
"Oh, it's a bug in my code. Again, as usual, I'm the idiot. Stupid world."1 -
As much as I hate sport and love sitting at home at my pc
I'm gonna try to run a bit every day
I mean, it's told to be good for you
(so far, I started running around the "block" 2 times, I don't think it counts as much, but hey, gotta start somewhere)27 -
A programmer once explained Nietzsche like this:
A long time ago, god created the world, but forgot to leave a developer documentation, thus the whole world was like legacy code...
And humans are like the end user of this world, and some among them spent time studying it, using the Moral API, hoping to get a result of "http 200 ok" from our world for the peace of mind. But the true operation of this world is still yet unknown...
As time passes, humans begin to find that in Moral API, good and evil are two base classes, and all the other moral properties (like ethic, justice and stuff) are just other classes based on those two classes through multiple inheritance.
One day, when programmer Nietzsche was observing the world's runtime behavior, he came up with a question:
"Did god really use good and evil as base classes? Could it be that they are actually derived classes?"
Most of the world is currently in the favor of mankind, and god must've wrote individual user cases for it's end users, he thought.
This made Nietzsche thinking: if end users are considered into two cases: the strong and the weak, how would the world be designed base on its user story?
Let's think about the strong, they can bully the weak as they please, and there's nothing the weak can do to stop them. In this case whether the Moral API exists or not doesn't fulfill the need of the strong.
But when it comes to the weak, Nietzsche thinks that because the weak cannot fight the strong, they need to belittle bullying and praise the strong for being nice. When the weak does this, it covers their powerless state to some extent, making them look somehow equal to the strong by being capable of commenting.
God might have coded the Moral API to fit the weak's requirement, also adding some public methods for the weak to comment on the strong. If the strong takes care of the weak, they call him nice and good, if the strong bullies people, they call him bad and evil.
That's when Nietzsche realized, that good and evil are both derived classes from the weak, and the base class should be the strong and the weak.
Then he started a series of studies about the Moral API, and got some thesis that persuaded lots of other end users...7 -
!rant
Ah the joy of tweaking one tiny segment of code to reduce your neural network runtime from 3 minutes for 100 generations to 3 seconds!6 -
At an interview, the first round was an online coding round. Two questions, one easy one hard, 90 minutes, easy peasy.
I solved the hard one first.
A bit of good logic, followed MVC pattern, all done. Worked flawlessly.
Submitted code. Online compiler threw up an internal error citing java is an invalid command(jdk not found).
Called the invigilators. What I heard next, I couldn't believe this shit.
"We're not responsible for any errors you may be having. Figure it out yourself"
I was like WTF dude. This is not even a compilation or runtime error!
After a heated discussion, I made him look at the code.
Him - what is all this classes and all? Why haven't you written everything inside the main function?
Me - those are model classes. Those are different helper functions. That is a recursive function to avoid 5 for loops and use divide and conquer. Ever heard of OOP? what kind of person writes a 300 line program inside one function?
Him - no no we write it like that only. Correct this.
Me - I fit everything inside the main function. Still the same error, java not installed. Called the idiot to have a look at it.
Him - yeah your code is wrong.
Me - may I know what's wrong with it? Can you fix it please?
Him - no no we aren't allowed to see the code (he had already read it twice. It was compiling and running perfectly, locally) .
Yeah you solved only 1 problem, you were supposed to solve 2.
Me - yes because the rest of the time I had the pleasure of your company. (It isn't everyday that I see talking buffoons.)11 -
So I have a teacher that when he use "C++" it is basically C with a .cpp file-extension and -O0 compiler flag.
Last assignment was to implement some arbitrary lengthy calculation with a tight requirement of max 1 second runtime, to force us to basically handroll C code without using std and any form of abstraction. But because the language didn’t freeze in time 1998, there is a little keyword named "constexpr" that folded all my classes, arrays, iterators, virtual methods, std::algorithms etc, into a single return statement. Thus making my code the fastest submitted.
Lesson of the story, use the language to the fullest and always turn on the damn optimizer
Ok now I’m done 😚7 -
its 2016, and they still believe that office skillz are enough for CS101..
boy u have to allocate memory in runtime without leaks by end of semester, not just make a text bold with a fancy font..2 -
Me: *Demoed my search API which supports multiple database implementations at the backend*
My Manager: Great!! Is the API independent of DB? Can you plug this API to any DB?
Me: Yes
My Manager: How can user specific DB at runtime?
Me: Why will user be interested in the DB used at the backend? He will just query the API for data.
My Manager: Let's just assume he wants to select a database at runtime.
Me: While searching a movie on Netflix, do you specific from which DB you wanna stream the movie?
My Manager: *Confused and pissed*7 -
The guy where I can only shake my head when I see his code, and he is really proud of if implementations, while he
- doesn't care about warnings
- breaks builds and doesn't care
- doesn't care about code styles and indents in a very column based way
- adds tons of comments to his code, mostly hard to understand, and sometimes that much you can hardly find the code
- implements a tokenizer where you have to inherit from its interface (Why would I wanna implement whole functions for a tokenizer and not just use it in place where needed? How do I use two of those in one class?)
- implement a "generic" state machine base class with fixed lengths array of 3 events and 3 strings (Why would I need events and strings hardcoded in a "generic" state machine? Why a maximum of 3?)
- once delivered a software without the needed runtime components, so the whole system (embedded device) wasn't working properly and only by chance missed the point of disabling update mechanisms
- make your ears bleed about his big inventions whenever he sees you, no matter how often he already told you about that blazing new feature5 -
Developer came to our area to rant a bit about a problem he was having with Xamarin. A particular android device was receiving a java runtime error trying to de-serialize data from a WCF contract. What he found was not to use WCF and use WebAPI (or a simple REST service that sent back/forth JSON).
When he proposed changing the service (since the data transport didn’t really matter, he could plug the assembly into a WebAPI project in less than an hour), the dev manager shot down the idea pointing him to our service standard that explicitly stated no WebAPI (it’s in bold letters).
I showed him the date on the “standard”, which was 5 years ago. We have versioning on our sharepoint server, so I also him my proposal notes on the change request document (almost two years before that) stating we should stop using WCF in favor of REST based web standards. Dev manager at the time had wrote in his comment “Will never use REST. Enterprise developers prefer RPC.”
He just about fell over laughing when I showed him this gif.2 -
I'm currently rewriting perfectly clean and functioning Scala code in Java (because "Enterprise", yay). The amount of unnecessary boilerplate I have to add is insane. I'm not even talking big complicated code but two liners or the lack of simple things like a range from 5 to 10.
Why do I have to write
List<Position> occupiedPositions = placedEntities.stream()
.flatMap((pe) -> pe.occupiedPositions().stream())
.collect(Collectors.toList());
instead of simply
val occupiedPositions = placedEntities.flatMap(_.occupiedPositions)
Why on earth does `occupiedPositions.distinct` suddenly become a monstrosity like `occupiedPositions.stream().distinct().collect(Collectors.toList())` where the majority of code is pure boilerplate? And this is supposed to be the new and better Java8 api which people use as evidence that Java is now suddenly "functional" (yeah no, just no).
Why do APIs that annotate parameters with @Nullable throw NullPointerExceptions when I pass a null? Why does the compiler not help prevent such stupidity? Why do we use static typing PLUS those annotations and it still crashes at runtime like every damn dynamic, interpreted language out there? That's not unfortunate, it's a complete waste of time.
Why is a simple idea like a range from x to 10 (in scala literally `x to 10`) not by default included in Java? There's Guava's version of Range which does not have a helper for integer ranges (even though they are the most used ones). Then there's apache.commons version which _has_ a helper for integers, but is strangely not iterable (wtf I don't even...).
Speaking of Iterable: How difficult could it be to convert an abstract Iterable<T> into a concrete List<T>? In scala it's surprisingly `someIterable.toList`. I found nothing like that so I took to stackoverflow where I found a thread in which people suggested everything from writing your own ListUtils helper class, using Guava (which is a huge dependency!) to using the new Java8 features inline (which is still about three lines long). I didn't know this was such a hard problem in computer science, TIL.
How anyone can be productive in this abomination of a language is beyond me now, even though I've used it for many years while learning to code (back then I didn't know there were much better ways to do things). The only good part is that I have to endure this nonsense for only about 3 days longer then I'm free again!12 -
--- Amazon opposes Oracle, continues support of OpenJDK until at least June 2023 using "Corretto" ---
As most Java developers have heard, Oracle will change the licensing models of the Oracle JDK and OpenJDK for versions older than 2 years, making creators of commercial software pay for a license for the JDK if they need such a version.
However, Amazon recently released Corretto (https://github.com/corretto), their own distribution of OpenJDK to the public, with an extended support of the Java 8 variant until June 2023.
This will give companies, which still didn't update their softwares' sources to a later Java version, more time to update these. Or, of course, to wait even longer, only to panic one month before support ends, causing some Java developers big headaches over unrealistic deadlines. ;)
Corretto had previously been an Amazon-internal tool, but since, according to Amazon, many of its AWS customers use the OpenJDK, they wanted to release it in order to make it the default Java runtime and development kit for Amazon Linux.
It will also be released on other platforms, such as other Linux distributions, Windows and Mac. Additionally, there a Docker image is available for download.
Thank you for reading!
Sources:
- https://aws.amazon.com/corretto/
- https://aws.amazon.com/blogs/...8 -
i had this weird dream. i invented a programming language that was connected to the physical world. every time an object was instantiated during runtime, a 3D printer would print this object immediately in real time, into the void of a confined space without gravitation (like a physical stack, but not like a stack). if this object was passed objects as function parameters of its methods, these little objects were printed as well and temporarily moved into the orbit of this object, orbiting it like electrons or little moons.21
-
I showed a friend of mine a project I made in two days in Docker and Symfony php. It is a rather simple app, but it did involve my usual setup: Nginx with gzip/cache/security headers/ssl + redis caching db + php-fpm for symfony. I also used php7.4 for the lolz
He complained that he didn't like using Docker and would rather install dependencies with composer install and then run it with a Laravel command. He insisted that he wanted a non-docker installation manual.
I advised him to first install Nginx and generate some self-signed certificates, then copy all the config files and replace any environment-injected values (I use a self-made shell script for this) with the environment values in the docker-compose files.
Then I told him to download php-fpm with php 7.4 alpha, install and configure all the extensions needed, download and set up a local Redis database and at last re-implement a .env file since I removed those to replace them with a container environment.
He sent an angry emoji back (in a funny way)
God bless containerized applications, so easy to spin up entire applications (either custom or vendor like redis/mysql) and throw them away after having played with them. No need to clutter up your own pc with runtime environments.
I wonder if he relents :p9 -
Me at home with my sister.
She(with water jar): Roshan, I can't open up the jar, please help me.
Me(coding): Do not disturb me!! just install Java runtime environment (JRE) and open it again.3 -
Doing linguistic research where I need to parse 2000 files of a total of 36 GB. Since we are using python the first thing I thought was to implement multi threading. Now I changed the total runtime from three days to like one day and a half. But then when I checked the activity monitor I saw only 20 percent of the CPU usage. After a searching process I started to understand how multi threading and multi processing works. Moral of the story: if you want to ping a website till they block you or do easy tasks that will not use up all power of one core, do multi thrading. If you need to do something complicated that can easily consume all the powers of a single CPU core, split up the work and do multi processing. In my case, when I tried to grab information from a website, I did multi thrading since the work is easy and I really wanted to pin the website 16 times simultaneously but only have 4 cores. But when it come to text processing which a single file will take 80 percent of cpu, split it up and do multi processing.
This is just a post for those who are confused with when to use which.12 -
Turns out writing interpreters is just a gateway drug and all I want to do now is build a compiler and custom language runtime...23
-
I could bitch about XSLT again, as that was certainly painful, but that’s less about learning a skill and more about understanding someone else’s mental diarrhea, so let me pick something else.
My most painful learning experience was probably pointers, but not pointers in the usual sense of `char *ptr` in C and how they’re totally confusing at first. I mean, it was that too, but in addition it was how I had absolutely none of the background needed to understand them, not having any learning material (nor guidance), nor even a typical compiler to tell me what i was doing wrong — and on top of all of that, only being able to run code on a device that would crash/halt/freak out whenever i made a mistake. It was an absolute nightmare.
Here’s the story:
Someone gave me the game RACE for my TI-83 calculator, but it turned out to be an unlocked version, which means I could edit it and see the code. I discovered this later on by accident while trying to play it during class, and when I looked at it, all I saw was incomprehensible garbage. I closed it, and the game no longer worked. Looking back I must have changed something, but then I thought it was just magic. It took me a long time to get curious enough to look at it again.
But in the meantime, I ended up played with these “programs” a little, and made some really simple ones, and later some somewhat complex ones. So the next time I opened RACE again I kind of understood what it was doing.
Moving on, I spent a year learning TI-Basic, and eventually reached the limit of what it could do. Along the way, I learned that all of the really amazing games/utilities that were incredibly fast, had greyscale graphics, lowercase text, no runtime indicator, etc. were written in “Assembly,” so naturally I wanted to use that, too.
I had no idea what it was, but it was the obvious next step for me, so I started teaching myself. It was z80 Assembly, and there was practically no documents, resources, nothing helpful online.
I found the specs, and a few terrible docs and other sources, but with only one year of programming experience, I didn’t really understand what they were telling me. This was before stackoverflow, etc., too, so what little help I found was mostly from forum posts, IRC (mostly got ignored or made fun of), and reading other people’s source when I could find it. And usually that was less than clear.
And here’s where we dive into the specifics. Starting with so little experience, and in TI-Basic of all things, meant I had zero understanding of pointers, memory and addresses, the stack, heap, data structures, interrupts, clocks, etc. I had mastered everything TI-Basic offered, which astoundingly included arrays and matrices (six of each), but it hid everything else except basic logic and flow control. (No, there weren’t even functions; it has labels and goto.) It has 27 numeric variables (A-Z and theta, can store either float or complex numbers), 8 Lists (numeric arrays), 6 matricies (2d numeric arrays), 10 strings, and a few other things like “equations” and literal bitmap pictures.
Soo… I went from knowing only that to learning pointers. And pointer math. And data structures. And pointers to pointers, and the stack, and function calls, and all that goodness. And remember, I was learning and writing all of this in plain Assembly, in notepad (or on paper at school), not in C or C++ with a teacher, a textbook, SO, and an intelligent compiler with its incredibly helpful type checking and warnings. Just raw trial and error. I learned what I could from whatever cryptic sources I could find (and understand) online, and applied it.
But actually using what I learned? If a pointer was wrong, it resulted in unexpected behavior, memory corruption, freezes, etc. I didn’t have a debugger, an emulator, etc. I had notepad, the barebones compiler, and my calculator.
Also, iterating meant changing my code, recompiling, factory resetting my calculator (removing the battery for 30+ sec) because bugs usually froze it or corrupted something, then transferring the new program over, and finally running it. It was soo slowwwww. But I made steady progress.
Painful learning experience? Check.
Pointer hell? Absolutely.4 -
!dev
Acourding to greenmotion, Germans only need 15 Minutes to assemble the Table I assambled today, while everybody else needs double the time.8 -
Recently I fucked up my laptop's rootfs USB stick again by tugging on it with some wire.. I think it got detached during runtime. Doesn't boot anymore.
So I attached it to my server to chroot into it and see what's wrong..
# cryptsetup luksOpen /dev/sdf2 cryptroot
> Unlocks without errors.
# btrfsck /dev/mapper/cryptroot
> Nothing wrong.
# mount /dev/mapper/cryptroot /mnt
> Mounts just fine.
# chroot /mnt (some other filesystems like /proc, /sys, and /dev were mounted first but meh)
> Enters chroot just fine.
# pacman -Syu
> Upgrades just fine.
# su condor
> Switches user just fine.
$ vim -p some files
> Enters the editor just fine.
Mounted it again to my laptop and try to boot, because it clearly seems like everything is just fine..
> Not gonna boot up. You can unlock your cryptroot and then I'll just fucking stall without saying shit.
MotherFFFFUUUUCCKKKEERRRRRRR!!!!!!! Fuck you HP for making such horrible USB connectors, and fuck you Arch for not giving something more verbose related to the issue, so that I can actually know what's wrong with you, and fucking FIX IT!!! Fucking pieces of junk! Do I really have to build my own PC and build my own LFS, just to have something halfway decent?!3 -
I've been using microsoft dev stack for as long as i remember. Since I picked up C#/.NET in 2002 I haven't looked back. I got spoiled by things like type safety, generics, LINQ and its functional twist on C#, await/async, and Visual Studio, the best IDE one could ask for.
Over the past few years though, I've seen the rise of many competing open source stacks that get many things right, e.g. command line tooling, package management, CI, CD, containerization, and Linux friendliness. In general many of those frameworks are more Mac friendly than Windows. Microsoft started sobering up to this fact and started open sourcing its frameworks and tools, and generally being more Mac/Linux friendly, but I think that, first, it's a bit too late, and second, it's not mature yet; not even comparable to what you get on VS + Windows.
More recently I switched jobs and I'm mainly using Mac, Python, and some Java. I've also used node in a couple of small projects. My feeling: even though I may be resisting change, I genuinely feel that C# is a better designed language than Java, and I feel that static type languages are far superior to dynamic ones, especially on large projects with large number of developers. I get that dynamic languages gives you a productivity boost, and they make you feel liberated, but most of the time I feel that this productivity is lost when you have to compensate for type safety with more unit tests that would not be necessary in a static type language, also you tend to get subtle bugs that are only manifested at runtime.
So I'm really torn: enjoy world class development platform and language, but sacrifice large ecosystem of open source tools and practices that get the devops culture; or be content with less polished frameworks/languages but much larger community that gets how apps should be built, deployed, monitored, etc.
Damn you Microsoft for coming late to the open source party.11 -
I've started writing Rust code for fun. My initial experience with it is that its like writing a program wearing a surgery mask and latex gloves with a condom around your keyboard, while you sit in a padded room with a nanny nagging over your shoulder.
The borrow checker is somewhat of a pain in the ass to deal with.
But that said, I've never been so safe and confident my code won't fail during runtime before.
And the best part: it's blazing fast.7 -
1. attach a debugger
2. create a set of breakpoints
3. perform an action in the UI
4. breakpoint is hit. F9 to jump to another breakpoint
5.
...
.......
...........
................
....................
nothing............
even more of nothing.....
......................................................
6. Kill the app. Restart. Repeat. Nothing again. Repeat it all ~5 times. Give up.
7. Go get some tea.
8. Come back with a cup of hot tea
9. the _next_ breakpoint is now hit (º . º)
10. F9 - yet another breakpoint is hit.
11. contemplate your own mental state, considering the #69 -
Dear Santa, please bring me a compiler that generates compile errors instead of runtime bugs. Thanks.10
-
The more I use Go, the more i start to like it. I didn’t realize how nice being able to generate binaries for every OS that matters was, until I had that power. It beats the hell out of trying to distribute a Python app for sure.
Sure, it has its warts.
It’s overly bureaucratic in the same way Java is.
I hate that you can’t import something without using it (most people I’d wager preemptively import libraries they know they’re gonna need even if the code isn’t written yet)
I really wish there was a way to just say “See this JSON blob? All those keys and values are strings, trust me, you don’t need me to tell you the type of each one individually.”
Generics would be nice.
I’d kill for exceptions - any decently sized go program is going to have very many if err checks where most could be condensed down to a single try/catch in most other langs.
I wish the tooling was better. Dependency management was a solved problem when Go was released and yet they chose to ship without it. There’s still no standard. Many hours of time have been wasted dinking with this.
But ya know what? Even with those warts, it’s still easier to write than Java. It’s still write once run anywhere, it’s blazing fast, and doesn’t require your end user to install an entire freakin runtime.
<3 Go2 -
Everyone talks about their hate of js but like python is honestly just as bad.
- shitty package manager,
* need to recreate python environments to keep workflows seperate as oppose to just mapping dependencies like in maven, npm, cargo, go-get
* Can't fix python version number to project I.e specify it in requirements
- dynamic typing that gets fixed with shitty duck typing too many times
- no first class functions
- limited lambda expressions
- def def def
- overly archaic error messages, rarely have I gotten a good error message and didn't have to dive into package code to figure it out
- people still use 2.7 ... Honestly I blame the difficulty of changing versions for this. It's just not trivial to even specify another python version
- inconsistent import system. When in module use . When outside don't.
- SLOW so SLOW
- BLOCKING making things concurrent has only recently got easier, but it still needs lots of work. Like it would be nice to do
runasync some_async_fcn()
Or just running asynchronous functions on the global scope will make it know to go to some default runtime. Or heck. Just let me run it like that...
- private methods aren't really private. They just hide them in intelisense but you can still override them....
I know my username is ironic :P8 -
I am the sole frontend developer in my project. I have only 6 months of professional coding experience. Just got a call from a person who used to lead me (she is still my lead, technically, but not very much involved in the dev process (management’s decision, not hers)).
She said that a concern has been raised that there have been large number of frontend issues which they (she didn’t specify, I am guessing management) haven’t seen before.
What do you think is the “large number”? Let me tell you. It’s 4.
2 of which are minor CSS issues that couldn’t have been anticipated while coding. They are runtime issues.
One of the 4 is a both frontend and backend issue.
And the last one is a fucking change request!
1 player, many responsibilities, slight issues, RAISE CONCERN - That’s management for you.
Fuck them, I guess.
On top of that, a concern I raised in front of the management regarding the management is not so much of a priority for them. I have a feeling that the concern they raised is just them being a jerk because I raised a concern in the first place.
Fuck them, again!
And again!5 -
NEW 6 Programming Language 2k16
1. Go
Golang Programming Language from Google
Let's start a list of six best new programming language and with Go or also known by the name of Golang, Go is an open source programming language and developed by three employees of Google and the launch in 2009, very cool just 3 people.
Go originated and developed from the popular programming languages such as C and Java, which offers the advantages of compact notation and aims to keep the code simple and easy to read / understand. Go language designers, Robert Griesemer, Rob Pike and Ken Thompson, revealed that the complexity of C ++ into their main motivation.
This simple programming language that we successfully completed the most tasks simply by librariesstandar luggage. Combining the speed of pemrogramandinamis languages such as Python and to handalan of C / C ++, Go be the best tools for building 'High Volume of distributed systems'.
You need to know also know, as expressed by the CTO Tokopedia namely Mas Leon, Tokopedia will switch to GO-lang as the main foundation of his system. Horrified not?
eh not watch? try deh see in the video below:
[Embedyt] http://youtube.com/watch/...]
2. Swift
Swift Programming Language from Apple
Apple launched a programming language Swift ago at WWDC 2014 as a successor to the Objective-C. Designed to be simple as it is, Swift focus on speed and security.
Furthermore, in December 2015, Swift Apple became open source under the Apache license. Since its launch, Swift won eye and the community is growing well and has become one of the programming languages 'hottest' in the world.
Learning Swift make sure you get a brighter future and provide the ability to develop applications for the iOS ecosystem Apple is so vast.
Also Read: What to do to become a full-stack Developer?
3. Rust
Rust Programming Language from Mozilla
Developed by Mozilla in 2014 and then, and in StackOverflow's 2016 survey to the developer, Rust was selected as the most preferred programming language.
Rust was developed as an alternative to C ++ for Mozilla itself, which is referred to as a programming language that focus on "performance, parallelisation, and memory safety".
Rust was created from scratch and implement a modern programming language design. Its own programming language supported very well by many developers out there and libraries.
4. Julia
Julia Programming Language
Julia programming language designed to help mathematicians and data scientist. Called "a complete high-level and dynamic programming solution for technical computing".
Julia is slowly but surely increasing in terms of users and the average growth doubles every nine months. In the future, she will be seen as one of the "most expensive skill" in the finance industry.
5. Hack
Hack Programming Language from Facebook
Hack is another programming language developed by Facebook in 2014.
Social networking giant Facebook Hack develop and gaungkan as the best of their success. Facebook even migrate the entire system developed with PHP to Hack
Facebook also released an open source version of the programming language as part of HHVM runtime platform.
6. Scala
Scala Programming Language
Scala programming termasukbahasa actually relatively long compared to other languages in our list now. While one view of this programming language is relatively difficult to learn, but from the time you invest to learn Scala will not end up sad and disappointing.
The features are so complex gives you the ability to perform better code structure and oriented performance. Based programming language OOP (Object oriented programming) and functional providing the ability to write code that is capable of evolving. Created with the goal to design a "better Java", Scala became one behasa programming that is so needed in large enterprises.3 -
!rant
I met a senior node.js developer for the first time and had a talk with him, really, I did not know how junior I was until I talked with him, everything he told me about node was just amazing, I mean, I describe myself as a good developer but he has the knowledge I would like to have someday, I loved node since I met the runtime and I follow many node/js programmers that are really good at it and I admire them, but having the opportunity to have an hour and something talk with one of them was really amazing and gave me more reasons to succeed and how to take that place, well I have to say this as per what I've already write -> nohomo5 -
Would you rather only be able to use Internet Explorer for the rest of your life or only use Light themes also for the rest of your life?15
-
Worst collaboration experience story?
I was not directly involved, it was a Delphi -> C# conversion of our customer returns application.
The dev manager was out to prove waterfall was the only development methodology that could make convert the monolith app to a lean, multi-tier, enterprise-worthy application.
Starting out with a team of 7 (3 devs, 2 dbas, team mgr, and the dev department mgr), they spent around 3 months designing, meetings, and more meetings. Armed with 50+ page specification Word document (not counting the countless Visio workflow diagrams and Microsoft Project timeline/ghantt charts), the team was ready to start coding.
The database design, workflow, and UI design (using Visio), was well done/thought out, but problems started on day one.
- Team mgr and Dev mgr split up the 3 devs, 1 dev wrote the database access library tier, 1 wrote the service tier, the other dev wrote the UI (I'll add this was the dev's first experience with WPF).
- Per the specification, all the layers wouldn't be integrated until all of them met the standards (unit tested, free from errors from VS's code analyzer, etc)
- By the time the devs where ready to code, the DBAs were already tasked with other projects, so the Returns app was prioritized to "when we get around to it"
Fast forward 6 months later, all the devs were 'done' coding, having very little/no communication with one another, then the integration. The service and database layers assumed different design patterns and different database relationships and the UI layer required functionality neither layers anticipated (ex. multi-users and the service maintaining some sort of state between them).
Those issues took about a month to work out, then the app began beta testing with real end users. App didn't make it 10 minutes before users gave up. Numerous UI logic errors, runtime errors, and overall app stability. Because the UI was so bad, the dev mgr brought in one of the web developers (she was pretty good at UI design). You might guess how useful someone is being dropped in on complex project , months after-the-fact and being told "Fix it!".
Couple of months of UI re-design and many other changes, the app was ready for beta testing.
In the mean time, the company hired a new customer service manager. When he saw the application, he rejected the app because he re-designed the entire returns process to be more efficient. The application UI was written to the exact step-by-step old returns process with little/no deviation.
With a tremendous amount of push-back (TL;DR), the dev mgr promised to change the app, but only after it was deployed into production (using "we can fix it later" excuse).
Still plagued with numerous bugs, the app was finally deployed. In attempts to save face, there was a company-wide party to celebrate the 'death' of the "old Delphi returns app" and the birth of the new. Cake, drinks, certificates of achievements for the devs, etc.
By the end of the project, the devs hated each other. Finger pointing, petty squabbles, out-right "FU!"s across the cube walls, etc. All the team members were re-assigned to other teams to separate them, leaving a single new hire to fix all the issues.5 -
Did a bunch more cowboy coding today as I call it (coding in vi on production). Gather 'round kiddies, uncle Logan's got a story fer ya…
First things first, disclaimer: I'm no sysadmin. I respect sysadmins and the work they do, but I'm the first to admit my strengths definitely lie more in writing programs rather than running servers.
Anyhow, I recently inherited someone else's codebase (the story of my profession career, but I digress) and let me tell you this thing has amateur hour written all over it. It's written in PHP and JavaScript by a self-taught programmer who apparently discovered procedural programming and decided there was nothing left to learn and stopped there (no disrespect to self-taught programmers).
I could rant for days about the various problems this codebase has, but today I have a very specific story to tell. A story about errors and logs.
And it all started when I noticed the disk space on our server was gradually decreasing.
So today I logged onto our API server (Ubuntu running Apache/PHP) and did a df -h to check the disk space, and was surprised to see that it had noticeably decreased since the last time I'd checked when everything was running smoothly. But seeing as this server does not store any persistent customer data (we have a separate db server) and purely hosts the stateless API, it should NOT be consuming disk space over time at all.
The only thing I could think of was the logs, but the logs were very quiet, just the odd benign message that was fully expected. Just to be sure I did an ls -Sh to check the size of the logs, and while some of them were a little big, nothing over a few megs. Nothing to account for gigabytes of disk space gradually disappearing.
What could it be? I wondered.
cd ../..
du . | sort --sort=numeric
What's this? 2671132 K in some log folder buried in the api source code? I cd into it and it turns out there are separate PHP log files in there, split up by customer, so that each customer of ours (we have 120) has their own respective error log! (Why??)
Armed with this newfound piece of (still rather unbelievable) evidence I perform a mad scramble to search the codebase for where this extra logging is happening and sure enough I find a custom PHP error handler that is capturing (most) errors and redirecting them to these individualized log files.
Conveniently enough, not ALL errors were being absorbed though, so I still knew the main error_log was working (and any time I explicitly error_logged it would go there, so I was none the wiser that this other error-catching was even happening).
Needless to say I removed the code as quickly as I found it, tail -f'd the error_log and to my dismay it was being absolutely flooded with syntax errors, runtime PHP exceptions, warnings galore, and all sorts of other things.
My jaw almost hit the floor. I've been with this company for 6 months and had no idea these errors were even happening!
The sad thing was how easy to fix all the errors ended up being. Most of them were "undefined index" errors that could have been completely avoided with a simple isset() check, but instead ended up throwing an exception, nullifying any code that came after it.
Anyway kids, the moral of the story is don't split up your log files. It makes absolutely no sense and can end up obscuring easily fixable bugs for half a year or more!
Happy coding.6 -
PHP arrays.
The built-in array is also an hashmap. Actually, it's always a hashmap, but you can append to it without specifying indexes and PHP will use consecutive integers. Its performance characteristics? Who knows. Oh, and only strings, ints and null are valid keys.
What's the iteration order for arrays if you use them as hashmaps (string keys)? Well, they have their internal order. So it's actually an ordered hashmap that's being called an array. And you can produce an array which has only integer keys starting with 0, but with non-sequential internal (iteration) order.
This array weirdness has some non-trivial implications. `json_encode` (serializes argument to JSON) assumes an array corresponds to a JSON array if its keys are consecutive integers in increasing order starting with 0, otherwise the array becomes a JSON object. `array_filter` (filters arrays/hashmaps using callback predicate) preserves keys, so it will punch holes in the int key sequence if non-last items are removed, thus turning arrays into hashmaps and changing your JSON structure if you forget to discard keys before serialization.
You may wonder how JSON deserialization works, then? There's a special class for deserialized JSON objects, `stdClass`. It's basically a hashmap too, but it's an object, not an array, and all functions that would normally accept arrays won't work with it. So basically its only use is JSON (de)serialization. You can even cast arrays to objects, producing `stdClass`.
Bonus PHP trivia:
Many functions return nonsensical values. `preg_match`, the regex matching function, returns 1 for success, 0 for no matches and false for malformed regular expression. PHP supports exceptions, so it could just throw one on errors. It would even make more sense to return true, false and null for these three cases. But no, 1, 0 and false. And actual matches are returned by output arg.
`array_walk_recursive`, a function supposed to recursively apply callback to each element of an array. That's what docs say. It actually applies it to leafs only. It will also silently accept object instead of array and "walk" it, but without recursing into deeper objects.
Runtime type enforcing is supported for function arguments and returned values. You can use scalar types, classes, array, null and a few special keywords. There's also a `mixed` keyword, which is used in docs and means "anything". It's syntactically valid, the parser will accept it, but it matches no values in runtime. Calling such function will always cause a runtime error.
Strings can be indexed with negative integers. Arrays can't.
ReflectionClass::newInstanceWithoutConstructor: "Creates a new class instance without invoking the constructor". This one needs no commentary.
`array_map` is pretty self-explanatory if you call it with a callback and an array. Or if you provide more arrays of equal length via varargs, callback will be called with more arguments, one from each array. Makes sense so far. Now, you can also call `array_map` with null instead of callback. In that case it treats provided arrays as rows of a matrix and returns that matrix, transposed.5 -
I am using this SDK and I came across a property "Orientation" of type int.
Why int? Is it an enum or something? Let's have a look into the online documentation...
"Gets or sets the orientation."
😣
Yeah, thanks. Very useful.
It's again that kind of documentation which simply restates the property name or method name. Who needs this?
So I tried to set the Orientation property to 1 to see what happens.
A runtime exception then told me that the only valid values are 0, 90, 180 and 270.
Well, this is kind of stupid but ok, I can live with that.
But ffs, put that info into the documentation, where it belongs!4 -
What do you look for in a programming language
People: features, syntax, runtime blah blah
Me: Active meme base -
As we're all going about our various Easter, Passover, et al., family celebrations, I have the perfect solution to help train your families to stop asking you for help with mundane computer stuff:
Every time someone asks you to do/fix something, give them a full talk about what is going on in their computer around that system.
Don't forget you can talk about lots of things too:
- concurrency
- TCP IP / socket networking
- multi-threaded programs vs. single threads
- RISC vs. CISC processors
- Why linux is better than Windows or Mac
- algorithms
- logarithmic runtime
- teach them how to convert between hex, binary, and base ten
Really pour it on too. Soon they'll either figure out that you are a highly-skilled individual who is not their personal geek squad, or they'll be too afraid of a big lecture to ask for help.
Works with my in-laws like a charm.5 -
Some fun facts :
☻ Programmers spend approximately 30% of the time surfing the source code 😁
☻ Progress in programming can be classified into 4 stages:
(a). Complex Programming
(b). Making Progress
(c). Slow Progress
(d). Stuck
☻ Programmers have a tendency to report their problems incompletely
☻ The main error messages, execution times and runtime compilation errors and the average time to solve them
☻ The software maintenance consumes more than 50% of the effort
☻ Ctrl C, Ctrl V, and Ctrl-Z have saved more lives than Batman tbh😇3 -
University Coding Exam for Specialization Batch:
Q. Write a Program to merge two strings, each can be of at max 25k length.
Wrote the code in C, because fast.
Realized some edge cases don't pass, runtime errors. Proceed on to check the locked code in the Stub. (We only have to write methods, the driver code is pre-written)
Found that the memory for the char Arrays is being allocated dynamically with size 10240.
Rant #1:
Dafuq? What's the point of dynamic Memory Allocation if you're gonna fix it to a certain amount anyway?
Continuing...
Called the Program Incharge, asking him to check the problem and provide a solution. He took 10 minutes to come, meanwhile I wrote the program in Java which cleared all the test cases. <backstory>No University Course on Java yet, learnt it on my own </backstory>
Dude comes, I explain the problem. He asks me to do it in C++ instead coz it uses the string type instead of char array.
I told him that I've already done it in Java.
Him: Do you know Java?
Rant #2:
No you jackass! I did the whole thing in Java without knowing Java, what's wrong with you!2 -
SQL Rule 1. Always assume there are external processes that might affect your data. (for instance, triggers).
SQL Rule 2. In Denormalised data, never execute logic on dependant table values, always copy from the parent.
SQL Rule 3. When Denormalised data schemas are created the DBA knows what they are doing.
SQL Rule 3.1. If DBA knows what they is doing then according to Rule 1 there is no problem with adding in some triggers to maintain data clones as they are created.
SQL Rule 4. If you don't like or agree with triggers, deal with it. They are a first class tool in a first class RDBMS. In a multi-app or service environment there may be many other external processes massaging your data
SQL Rule 5. If all previous rules are not broken and the system has been running efficiently for many years DO NOT complain that there are triggers in the database that are doing and have been doing the same process that you just butchered (by violating Rule 1 and 2) in your makeshift "hello world, look what I can do from my phone" angular BS when the rest of the users are still relying on the existing runtime app.
SQL Rule 6. If you turn my triggers off, you sure as hell better turn them back on!1 -
LabVIEW.
Because WHY THE ACTUAL FUCK should you want to use a visual programming language in a professional environment and pay for it.
(Other than: the manufacturer of your measurement device/power supply/electronic load/etc. has already provided a LabVIEW module so you just have, you know, 'click' your program together and be done.
No, we won't give you the documentation on how to do it properly without that piece of crap or even give you code snippets.
(If you don't feel the urge to shoot yourself in the foot, you have obviously too much time on your hands and could simply be reading the interface definitions for that particular interface. At least it's standardized, d'uh.)
Oh, and you want a lightweight application? Here comes the runtime environment! A big clunky ... thing you'll need now to start up even a simple measure-and-log-data-thing.
Well, OK, it works for the occasional Measure-and-Log-Thing. If you don't need the data too fast.
If you want to do something a bit more complex, knock yourself out, but don't ask me to debug it for you afterwards because that colourful entanglement of wires and connections and blocks is a DAMN HUGE MESS and trying to understand how it works feels like defusing a bomb in a shitty action movie.)
Never again.5 -
Working on a custom Chromium OS board at the moment
So boards in Chromium OS are specialized versions of Chromium OS built for a specific hardware while maintaining upstream compatibility.
I built a board specifically to be as near as CloudReady's compatibility table as possible, so this is what I have at the moment:
* Most hardware works (Libinput)
* Still working on supplying Nvidia drivers using nouveau (Google insists using OSS drivers, we can't use NVIDIA drivers)
* Still working on making Crostini GPU-enabled by default so I don't always terminate it via vmc
* ARC works as per the open sourced Android Runtime but I need help making the Play Store working
Overall its a bit stable but if anyone's down I'll replicate it on a GitHub repository and I'll let everyone contribute their changes. The aim of the custom board is to:
* Make it work on most hardware possible
* Add android support with APK installation (FydeOS has this but I can't replicate it in CrOS).
* Produce a close to Chrome's release channel.
Here's a screenshot of me using it, it works but I'll need to start over from scratch to make it more contributable10 -
I fucking hate online editors for recruitment challanges!!
2 fucking hours I spend on developing a architectural problem but nothing came up on stdout!!
Why? Because the runtime added some functions to HELP me with stdin and stdouts. They were being called by the driverscripts and reading everything up beforehand!!
I was reading empty stdin from there!!!
Worst part is the code was kept at the last of the editor space hidden as a gray shade with no indication that there was code minimized.
After fucking my brain so long, realised the issue when I had 2 mins left!
Ended up with a compilation error while hurrying to change!!
I hate the hackerrank platform!!🤬🤬🤬😡🤯1 -
So... Heard back from a recruiter today. Lovely lass.
I’d passed over a submission for her tech demo.
The brief was basically just to create a small simple module that calculates shit, nae effort.
But, when the recruiter had me on the phone she said “I know it’s a silly small module but try and run it up like you would a production ready app”.
The job spec and recruiter were keen on me demonstrating TDD, not specific on js version, final runtime, etc. The job was a senior spec at a higher salary range. So it warranted some effort, and demonstrating more than a simple module.
“Okay, cool, nae bother, let’s crack on.”
The feedback in the response from the dev today:
“He’s over-engineered tests, build...”
SUCK MY LEFT TESTICLE YOU FUCKWIT.
Talk to your recruiters, not me.
The feedback included a phrase I never hope to hear from a developer I work with:
“Tests are good but...” 😞
It was a standard 98% test suite from an RGR cycle, no more or less than I’d expect in prod.
The rest of the feedback was misguided or plain wrong. It was useful to see because I know now when they say they have “high standards” they mean: we listen to the dude who put the factory pattern in a JS brief.
Oh shit also: “someone’s done chmod 777” was in there as a sarcastic comment in the feedback. It was his fucking unarchive tool 😞
My response was brief and polite: “cheers for the consideration, all the best, James”
It’s honestly not worth warning them. Or, asking why they’d criticise something they’d asked me to do.
If you want a shitty js module, ask for a shitty js module and no more.4 -
"Insufficient memory for Java Runtime Environment"
I'm using a host with 32 GB ROM, fuck you Java.12 -
There you are, fiddling with next.js webpack settings, because your isomorphic JS-in-CSS-in-JS SSR fallback from react-native-web to react-dom throws a runtime error on your SSR prerendering server during isomorphic asynchronous data prefetching from Kubernetes backend-for-frontend edge-server with GraphQL.
You have all that tech to display a landing page with an email form, just to send spam emails with ten tracking links and five tracking beacons per email.
Your product can be replaced by an Excel document made in two days.
It was developed in two years by a team of ten developers crunching every day under twelve project managers that can be replaced with a parrot trained to say “Any updates?”
Your evaluation is $5M+. You have 10,000 dependency security warnings, 1000 likes on Product Hunt, 500 comments on Hacker News, and a popular Twitter account.
Your future looks bright. You finish your coffee, crack your knuckles and carry on writing unit tests.5 -
Buckle up, it's a long one.
Let me tell you why "Tree Shaking" is stupidity incarnate and why Rich Harris needs to stop talking about things he doesn't understand.
For reference, this is a direct response to the 2015 article here: https://medium.com/@Rich_Harris/...
"Tree shaking", as Rich puts it, is NOT dead code removal apparently, but instead only picking the parts that are actually used.
However, Rich has never heard of a C compiler, apparently. In C (or any systems language with basic optimizations), public (visible) members exposed to library consumers must have that code available to them, obviously. However, all of the other cruft that you don't actually use is removed - hence, dead code removal.
How does the compiler do that? Well, it does what Rich calls "tree shaking" by evaluating all of the pieces of code that are used by any codepaths used by any of the exported symbols, not just the "main module" (which doesn't exist in systems libraries).
It's the SAME FUCKING THING, he's just not researched enough to fully fucking understand that. But sure, tell me how the javascript community apparently invented something ELSE that you REALLY just repackaged and made more bloated/downright wrong (React Hooks, webpack, WebAssembly, etc.)
Speaking of Javascript, "tree shaking" is impossible to do with any degree of confidence, unlike statically typed/well defined languages. This is because you can create artificial references to values at runtime using string functions - which means, with the right input, almost anything can be run depending on the input.
How do you figure out what can and can't be? You can't! Since there is a runtime-based codepath and decision tree, you run into properties of Turing's halting problem, which cannot be solved completely.
With stricter languages such as C (which is where "dead code removal" is used quite aggressively), you can make very strong assertions at compile time about the usage of code. This is simply how C is still thousands of times faster than Javascript.
So no, Rich Harris, dead code removal is not "silly". Your entire premise about "live code inclusion" is technical jargon and buzzwordy drivel. Empty words at best.
This sort of shit is annoying and only feeds into this cycle of the web community not being Special enough and having to reinvent every single fucking facet of operating systems in your shitty bloated spyware-like browser and brand it with flashy Matrix-esque imagery and prose.
Fuck all of it.20 -
Why does node-sass have such garbage documentation?!
I've now spent over an hour trying to get a clear and concise answer to how that shit works, and what do I get? This: (see picture)
I don't know what any of that means, nor do they care to tell me.
I don't want to render this shit at runtime, I want it to compile the sass code when I make changes to it so my app doesn't get boggled down by unnecessary background processes.
But nooo of course not.
To top it off, the "easy" electron-compile solution doesn't even fucking compile because all its dependencies are either outdated or 404 on me. 😡
It's shit like this that makes me hate web-style development. Lacking documentation and people who just assume everything is logical and clear from the start. It's fucking not.4 -
Me and my friends were roasting this guy in our java class saying that the guy had a compilation error when he was born.He savagely replied that if we did not have a compilation error when we were born why are we going through a runtime error now😂😂😂2
-
Today my fellow @EaZyCode found out a local Hosting Provider has a massive security breach.
He wrote an Plugin for Minecraft with an own file explorer and the ability to execute runtime commands over it.
We discovered that this specific hosting provider stores the ftp passwords one level above the FTP-Root. In FUCKING PLAIN TEXT! AND THE MYSQL PASSWORD TOO! And even more shit is stored there ready to be viewed by intelligent people...
It's one of the fucking biggest Hosting provider Germanys!
But, because EaZyCode has such a great mind and always find such bugs, I give him the title "Providers Endboss" today, he has earned it.
Loving you ❤️
Edit: we used SendMail with runtime commands and sended too many empty Spammails (regret noting)18 -
Me: Runs app
*Crash with error*
Me: Changes one thing, then runs again
*Crash with different error in another part of code*
Me: Fixes that error and runs again
*A FATAL ERROR HAS BEEN DETECTED BY THE JAVA RUNTIME ENVIRONMENT*
Me: Runs app again, "Maybe it was just a hiccup."
*A FATAL ERROR HAS BEEN DETECTED BY THE JAVA RUNTIME ENVIRONMENT*
Me: Chucks laptop out window. Goes to gaming PC to play Dark Souls 3, because it's less angering than this.7 -
Well after years of programming, I've hit my first runtime error that provides no info , the code fails prior to being able to generate an error so this is fucking fine :-)
And of course, the one time I need stack overflow, it tells you to initialise the class with data... Yet the class doesn't contain a fucking constructor... Smiley face7 -
So, first time ranting, sorry if I mess anything up.
When I first started my current job and got introduced to the system we were coding in, something seemed a little fishy to me. Didn't like the system anyway, but at least the language is a compiler language, so it runs quite quickly, right?
In theory, yeah. If the lead dev liked the IDE that came with it. But he has to REALLY fucking hate it, because rather than using it, he codes in plaintext. No syntax highlighting, no auto-indent, nothing. And he's built the entire damn system around doing that. Sadly the compiler is only integrated into the IDE, so what do we do there? Copy the code from the plaintext file to the IDE to compile it there? No no, why would you. The language has a function you can use to compile some code at runtime.
And so he does. Every. Single. Fucking. Script. There's a single main script that runs and finds the correct textfile to then runtime-compile and execute. So we effectively made a compiler language into a massively unoptimized interpreter lang.
I even mentioned that this might be a problem, but I was completely dismissed, so at that point it's not my problem anymore and I have then switched to a different system anyway.
Couple weeks later I heard the same guy complaining that the scripts were running almost the whole night so we'd probably need some better hardware or something.
Well if only there was a really obvious solution that would improve the performance by probably about a factor of 20 or so...12 -
People caught using emojis in code should be driven into the sea.
Otherwise one day its gonna just be straight magic, without reason or understanding.
You're gonna type a bunch of moon runes into a glowing floaty interface, pour the blood of a chicken into a collector tray (totally not a pentagram) and "shit just happens" (tm).
And "scholars" (neckbeards) will spend all their time shape-in-wrong-hole idiocracy-style button mashing their mystical ouija board IDEs in the grim dark future, looking for combinations that do something useful.
Every time it glows red? Compile error.
Every time it glows green? Christmas is near, congrats it compiled.
Every time it sets off a mystical air siren (henceforth known as "fusrohdah"), runtime error. And probably explosions.
In the grim dark future of Apple 40k. A.D, there is only war, warp demons, and pending VSCode updates.11 -
So legitimately accidentally started building a compiler... Don't ask how because I don't know...
(No it's not a 'true' compiler that will create executables, it just a compiler to make some data easier for my runtime to read it)2 -
Many people here rant about the dependency hell (rightly so). I'm doing systems programming for quite some time now and it changed my view on what I consider a dependency.
When you build an application you usually have a system you target and some libraries you use that you consider dependencies.
So the system is basically also a dependency (which is abstracted away in the best case by a framework).
What many people forget are standard libraries and runtimes. Things like strlen, memcpy and so on are not available on many smaller systems but you can provide implementations of them easily. Things like malloc are much harder to provide. On some system there is no heap where you could dynamically allocate from so you have to add some static memory to your application and mimic malloc allocating chunks from this static memory. Sometimes you have a heap but you need to acquire the rights to use it first. malloc doesn't provide an interface for this. It just takes it. So you have to acquire the rights and bring them magically to malloc without the actual application code noticing. So even using only the C standard library or the POSIX API can be a hard to satisfy dependency on some systems. Things like the C++ standard library or the Go runtime are often completely unavailable or only rudimentary.
For those of you aiming to write highly portable embedded applications please keep in mind:
- anything except the bare language features is a dependency
- require small and highly abstracted interfaces, e.g. instead of malloc require a pointer and a size to be given to you application instead of your application taking it
- document your ABI well because that's what many people are porting against (and it makes it easier to interface with other languages)2 -
Devrant !! A platform for frustrated devs ranting about their runtime exceptions which only devs can decompile ... Cool3
-
There are a couple of them to list! But to sum my main ones(biggest personal heroes):
John McCarthy, one of the founding fathers of Artificial Intelligence and accredited with coining such term(sometimes before 1960 if memory serves right), a mathematical prodigy, the man based the original model of the Lisp programming language in lambda calculus. Many modern concepts that we have in programming where implemented in one way or another from his systems back in the day, and as a data analyst and ML nut.....well I am a big fan.
Herb Sutter: C++ programmer extraordinaire. I appreciate him more for his lectures and published articles than anything else. Incredibly smart and down to earth and manages to make C++ less intimidating while still approaching it with respect.
Rich Hickey: The mastermind behind Clojure, the Lisp dialect for the JVM. Rich is really talented and his lectures behind his motivations and reasons behind everything he does with Clojure are fascinating to see.
Ryan Dahl: Awww shit y'all know how it is. The man changed web development both in the backend and the frontend for good. The concept of people writing their own servers to run their pages was not new, but the Node JS runtime environment made it more widely available to people by means of a simple to use language that was already popular with web developers. I would venture to say that Ryan's amazing contributions to JS made the language better, as it stands, the language continues to evolve and new features that make it overall better keep being added. He is currently building Deno, which would be a runtime environment for TypeScript, in Rust.
Anders Hejlsberg: This dude was everywhere man....the original author of Turbo Pascal and the lead of Delphi back in the day. These RAD tools paved the way for what would be a revolution in the computing world. The dude is also the lead architect and designer of the C# programming language as well as TypeScript.
This fucker is everywhere and I love it.
Yukihiro "Matz" Matsumoto: Matsumoto san is the creator of the Ruby programming language. Not only am I a die hard fan of Ruby, but of the core philosophies that the man keeps as the core of his language design: Make the developer happy, principle of least surprise. Also I follow: minswan which is a term made by the Ruby community that states Mats is nice so we are nice. <---- because being cool to others is better than being a passive aggressive cunt.
Steve Wozniak: I feel as if the man does not get enough recognition...the man designed the Apple || computer which (regardless of how much most of y'all bitch and whine) paved the way for modern micro computers. Dude is also accredited with designing one of the first programmable universal remotes(which momma said was shitty) but he did none the less.
Alan Kay: Developed Smalltalk and the original OOP way of doing things. Smalltalk as a concept is really fucking interesting. If you guys ever get the chance, play with Pharo, which is a modern Smalltalk. The thing is really interesting and the overall idea of Smalltalk can be grasped in very little time. It sucks because the software scales beautifully in terms of project building, the idea of hoisting a program as its own runtime environment and ide by preserving state through images is just mind blowing to me. Makes file based programs feel....well....quaint.
Those are some of the biggest dudes for me. I know that the list is large, but I wanted to give credit to the people that inspired me the most. Honorary mention goes to other language creators and engineers of course, but it would be way too large to list!9 -
I write python that's faster than most people's c++. My c++ smokes everyone. Current project runtime has gone from 90 minutes to 90 seconds. Fuck yeah. I'm really not paid enough...14
-
I hate Sass.
When installing all NPM dependencies with npm i, it's always quick, but not with sass. Ooooh myy goood. It starts compiling. It always misses something. Your node version is always not what sass needs. It pulls out gyp which requires some native shit. The build is never reproducible, it always fails with some horrible two mile long poorly-formatted stacktrace that is just gibberish.
More than that, sass is just poorly designed tool used by frontend fuckboys to write imperative, nonstandard, non-maintainable styles. If you know shit about css, you don't need sass.
I'm so happy it's going to die along with gulp. Webpack and css modules are here.
Yes, css-in-js that has a runtime penalty is also shit. If you like its syntax but dislike everything else, use Linaria. It has no runtime penalty and looks just like other css-in-js solutions.14 -
So I just recently had the pleasure to set up a Rails environment for a friend on Windows. I haven't used Windows in about 5 or 6 years, and the person I had to set it up for doesn't know much about programming at all.
I all went fine at first, install database, devkit thingy and git. Then set up the project itself. And there is where the problems started.
First windows would refuse to use SSL, because of some weird bug in the Windows version of rubygems. The suggested upgrade did not work so I had to switch some gem sources to insecure connections, but at least it did install everything correctly.
Alright, I thought, that's not _that_ bad, everything is running now.
He sent me a screenshot some time later. Something was wrong with the JavaScript runtime, and I could not figure out for the life of me what the issue was.
Later again he sent me another screenshot.
His Antivirus spyware was messing with the asset pipeline. (╯°□°)╯︵ ┻━┻
This was the point where I just said "FUCK IT, i'll just put everything into a fucking VM and let him use that".
I should have done that in the first place.
Long story short:
Setting up a development under Windows is painful.
Do yourself a favor and just use a VM.3 -
I want to explain to people like ostream (aka aviophille) why JS is a crap language. Because they apparently don't know (lol).
First I want to say that JS is fine for small things like gluing some parts togeter. Like, you know, the exact thing it was intended for when it was invented: scripting.
So why is it bad as a programming language for whole apps or projects?
No type checks (dynamic typing). This is typical for scripting languages and not neccesarily bad for such a language but it's certainly bad for a programming language.
"truthy" everything. It's bad for readability and it's dangerous because you can accidentaly make unwanted behavior.
The existence of == and ===. The rule for many real life JS projects is to always use === to be more safe.
In general: The correct thing should be the default thing. JS violates that.
Automatic semicolon insertion can cause funny surprises.
If semicolons aren't truly optional, then they should not be allowed to be omitted.
No enums. Do I need to say more?
No generics (of course, lol).
Fucked up implicit type conversions that violate the principle of least surprise (you know those from all the memes).
No integer data types (only floating point). BigInt obviously doesn't count.
No value types and no real concept for immutability. "Const" doesn't count because it only makes the reference immutale (see lack of value types). "Freeze" doesn't count since it's a runtime enforcement and therefore pretty useless.
No algebraic types. That one can be forgiven though, because it's only common in the most modern languages.
The need for null AND undefined.
No concept of non-nullability (values that can not be null).
JS embraces the "fail silently" approach, which means that many bugs remain unnoticed and will be a PITA to find and debug.
Some of the problems can and have been adressed with TypeScript, but most of them are unfixable because it would break backward compatibility.
So JS is truly rotten at the core and can not be fixed in principle.
That doesn't mean that I also hate JS devs. I pity your poor souls for having to deal with this abomination of a language.
It's likely that I fogot to mention many other problems with JS, so feel free to extend the list in the comments :)
Marry Christmas!34 -
Had a stupid argument with a “last year robotics engineer” student that shits on python just because he doesn’t like the syntax and compares the runtime speed with C++
like what the fuck dude, how is that a valid argument25 -
So there's that project with my coworker. We splitt up the classes, 10 to be implemented by him, 10 by me.
Fast Forward to 4 weeks before deploy.
Coworker: Your stuff logs a lot of stuff. It's not very clear and a liiittle to verbouse. 5 entries per second? Too much!
Me: Okay, you're right. Let me fix that.
2 Days later I look at his logs at runtime. He logs EVRY SQL statement and their results! In a batch that processes a 10'000 of customers!
He points out: That's useful stuff and it's not that much. It's needed for debuging.
My face: 😦4 -
Thought the day would never come but... I'm starting to hate android as an operating system...
It's just becoming so inconsistent and fragmented, it's almost at windows level of inconsistent.
Now either google should start regulating the app store and android itself or completely ditch android as a complete stand alone OS.
I would personally seperate android into a runtime and focus on fuschia by building the android runtime into it, that way it could pull system UI element design and such rather than have the user build apps that look completely out of place and don't follow rules like dark mode, theming and the such...
I'm not going to jump ship into iOS because fuck iOS but just really hope google really starting tightening android up else I feel like it's just going to starting breaking more and more into a steaming mess.5 -
Is it ethical to charge a client for the runtime of a computation? I.e. cpu time?
I usually don't, since it doesn't cost me anything to leave my machine running overnight. But a few of my friends told me that I should.
More context:
I do sometimes freelance work for professors as an RA. At times you need to leave a script running for like +5 hours. During which I just either procrastinate or go to the gym or sleep. The energy cost for computer running is barely a dollar.
I get charged by the hour per work in my timesheet, or sometime for a negotiate price which is also usually computed by the estimated work time it would take.5 -
Developers who think complex code is good.
"Oh, lookie here, I can swizzle methods and inject dependencies in the runtime!"
"Although we have no valid use case, let's use dependency injection and follow the commandory stateor patterns because I watched a video."
Just because you learn something new that looks cool does not make it practical, you tosser.1 -
Android development sucks assssssssssss.
They FINALLY made a design system that doesn't look ugly so I thought might as well upgrade my old apps to it.
Publish and tonnnnes of crashes hours after launch.
Test on older devices and turns out some @color/material_xyz was missing in a lower API code BUT available in higher ones? No fallback, no error in AndroidStudio, just a runtime crash. Amazing
Then the location permissions glitch up. On lower androids even if you aren't actively tracking the user, the system tries to call some method which if you haven't overridden, the app crashes at launch.
And no amount of wrapping in try-catch-ignore helps (https://stackoverflow.com/questions... helped)
OH AND THEN the above solution if used on latest Android code33, CRASHES ON RUNTIME. so more sets of 'if VCODE this then ask this else that' bullshit.
I don't even need location it's just for better ad money ffs.
I've been team-android since Froyo and hate apple's monopoly, but if this is the level of their competence, many will jump ship sooner or later.
PS: yes I know I should've checked for lower versions before hand but Im not gonna make 8 android VMs to test all when different things fail in different versions.
I did have to do that in the end, but for a meh pet project one shouldn't have to. The system should have enough fallbacks and graceful fails.3 -
The fuck is up with venv, conda, pip, pip3, python3, CRYPTOGRAPHY_OPENSSL_NO_LEGACY and "you can't install packages in docker based environments" DUDE STOP WHAT THE FUCK
How the fuck is that the scripting language of choice? It has by far the most confusing and messy runtime setup. Like it's easier to make sense of Javas version-shenanigans than this bullshit.
And then you think well what gives. Runs > python ...
"This environment is externally managed and you can go kill yourself, JUST LOOK UP PEP-666" LIKE NO YOU FUCK, JUST RUN THE FUCKING SCRIPT!
It's nice you thought about separation of versions but DOCKRR DOCKER DOCKER THERE ARE CONTAINERS WHY THE FUCK DO YOU DO SOME BULLSHIT WITH ENVS IN FOLDERS REQUIRING SOME RUNTIME BULLSHIT WHAT NO STOP WWHYYY7 -
!rant
So coming from the interpreted language world (mainly using python), I'm always amazed on how compiled languages work. Especially C.
Every time I use C, it's like everything is sooooo faster (runtime), and yes I've read about it so many times. It's just that I can't explain this great feeling about actually seeing the results of using C.
Man, I think I just love C (even though I'm still confused in using pointers).4 -
The primary concept of reactive programming is great. The idea that things just naturally re-run when anything they rely on is changed is amazing. Really, I think it's the next step in programming language development and within a decade or two at least one of the top 5 programming languages will be built entirely on this principle.
BUT
Expecting every dependency to be used unconditionally is stupid. Code that checks everything it might need all the time even if a decision can be made from much less information is simply bad, inefficient code. If you want to build a list of dependencies automatically, you have to parse the source.
And I really hate that there are TONS of languages that either make the AST readable at runtime or ship with a very powerful preprocessor that could be used to analyse expressions and build dependency lists, but by its sheer popularity the language we're trying to knead into something it was never and still isn't meant to be is JavaScript.3 -
Me yesterday evening:
"Fuck java, fuck JVM, fuck everything about it, shit doesn't work for some reason, no runtime errors, no compiler errors, no syntax errors, nothing, *turns off computer*".
Me today morning(coffee = false), after comparing the documented example code provided by the API with one someone else made, I've noticed that the one provided by the API was messed up and couldn't work.
"Lemme change that one value in the properties...okay here we go"
Shit works out perfectly.
FUCK FALSELY DOCUMENTED CODE
FUCK DOCUMENTATIONS IN GENERAL2 -
!rant
I was 4 years old and it was 1998. A shiny new computer, with plastic covers so it would not get dusty.
It came with Windows 95 and I damaged that installation of Windows after installing a game made for an incompatible version of the C++ runtime. Good times.1 -
Why the fuck everyone in indian game dev industry is obsessed with unity fuckkkkkk !
Don't you know you only need some lite runtime like OGL or SDL for those shitty "hyper casual" games
Also why the fuck is an experience in building hyper casual games is a requirement isn't this side scroller hack and slash knockoff good enough for you to know I'm competent enough
Fuck you dumb shit for brains people who are heating up phones by using unity just for a shoot the hoops game.6 -
php's type hints are completely broken.
Why is strict mode not the default? Why does it completely break down for arrays? (You have to abuse phpdocs to get any meaningful hints but you still lose any runtime checks.) What's with union types? (I know, php8 now has them but what took you so long.)2 -
Boss: "You hardcoded the redirect uri in the code (Early on during development and forgot about it, because apple OAuth is a piece of shit), but don't worry I fixed it by hardcoding the uri with the production host into the config file where clearly all settings are fetched from the OS Environment variables at runtime. This will surely fix the problem in staging we have, no need to thank me"5
-
Writing x86 assembly code in VS Code feels so weird. I mean, I'm using something that's built using crazily high level languages (JS, HTML, CSS), on top of a mammoth runtime environment (Node, V8), which is itself sitting on a modern and sophisticated operating system (Antergos), and I'm writing code that shifts bits and bytes around in memory in order to get one part of my C program to run just a little faster. Wow.1
-
Recently had to implement some microbenchmarks for a project. First time I ran them, I thought they had gone stuck. It turned out they weren't, but the processing took forever.
Some smaller benchmarks revealed that runtime was not scaling linearly with the input size as one would expect for the problem. It turned out that code was iterating over the input to find corresponding entries in the output.
We changed the processing so that it creates the output in the same order as the input and just compare entries at the same position. With that we were able to cut runtime from a few hours to a few seconds. -
Pretty much a sort of research work. The first assignment was: "look, we have this CAD viewer, but we would want to eventually optimize the structure of the mesh, so here's this method of minimizing the memory footprint. Try implementing it and integrating it with our application."
PS: the method is using triangle strips, where the next triangle uses two vertexes of the previous one, theoretically reducing the memory footprint of the mesh by 2/3 if the mesh is fully optimized. In the end, due to memory and performance constraints (this had to run on the first gen iPad), and overall application architecture, on the fly striping was unfeasible and gained no benefit, because striping an arbitrary mesh is a fucking hard task.
Another one was an implementation of smooth shading by recalculating vertex normals in runtime.5 -
python machine learning tutorials:
- import preprocessed dataset in perfect format specially crafted to match the model instead of reading from file like an actual real life would work
- use images data for recurrent neural network and see no problem
- use Conv1D for 2d input data like images
- use two letter variable names that only tutorial creator knows what they mean.
- do 10 data transformation in 1 line with no explanation of what is going on
- just enter these magic words
- okey guys thanks for watching make sure to hit that subscribe button
ehh, the machine learning ecosystem is burning pile of shit let me give you some examples:
- thanks to years of object oriented programming research and most wonderful abstractions we have "loss.backward()" which have no apparent connection to model but it affects the model, good to know
- cannot install the python packages because python must be >= 3.9 and at the same time < 3.9
- runtime error with bullshit cryptic message
- python having no data types but pytorch forces you to specify float32
- lets throw away the module name of a function with these simple tricks:
"import torch.nn.functional as F"
"import torch_geometric.transforms as T"
- tensor.detach().cpu().numpy() ???
- class NeuralNetwork(torch.nn.Module):
def __init__(self):
super(NeuralNetwork, self).__init__() ????
- lets call a function that switches on the tracking of math operations on tensors "model.train()" instead of something more indicative of the function actual effect like "model.set_mode_to_train()"
- what the fuck is ".iloc" ?
- solving environment -/- brings back memories when you could make a breakfast while the computer was turning on
- hey lets choose the slowest, most sloppy and inconsistent language ever created for high performance computing task called "data sCieNcE". but.. but. you can use numpy! I DONT GIVE A SHIT about numpy why don't you motherfuckers create a language that is inherently performant instead of calling some convoluted c++ library that requires 10s of dependencies? Why don't you create a package management system that works without me having to try random bullshit for 3 hours???
- lets set as industry standard a jupyter notebook which is not git compatible and have either 2 second latency of tab completion, no tab completion, no documentation on hover or useless documentation on hover, no way to easily redo the changes, no autosave, no error highlighting and possibility to use variable defined in a cell below in the cell above it
- lets use inconsistent variable names like "read_csv" and "isfile"
- lets pass a boolean variable as a string "true"
- lets contribute to tech enabled authoritarianism and create a face recognition and object detection models that china uses to destroy uyghur minority
- lets create a license plate computer vision system that will help government surveillance everyone, guys what a great idea
I don't want to deal with this bullshit language, bullshit ecosystem and bullshit unethical tech anymore.11 -
We code hard in these cubicles
My style’s nerd-chic, I’m a programmin’ freak
We code hard in these cubicles
Only two hours to your deadline?
Don’t sweat my technique.
Sippin’ morning coffee with that JAVA swirl.
Born to code; my first words were “Hello World”
Since 95, been JAVA codin’ stayin’ proud
Started on floppy disks, now we take it to the cloud.
On my desktop, JAVA’s what’s bobbin’ and weavin’
We got another winning app before I get to OddEven.
Blazin’ code like a forest fire, climbin’ a tree
Setting standards like I Triple E….
Boot it on up, I use the force like Luke,
Got so much love for my homeboy Duke.
GNU Public Licensed, it’s open source,
Stop by my desk when you need a crash course
Written once and my script runs anywhere,
Straight thuggin’, mean muggin’ in my Aeron chair.
All the best lines of code, you know I wrote ‘em
I’ll run you out of town on your dial-up modem.
Cause…
We code hard in these cubicles
Me and my crew code hyphy hardcore
We code hard in these cubicles
It’s been more than 10 years since I’ve seen the 404.
Inheriting a project can make me go beeee-serk
Ain’t got four hours to transfer their Framework.
The cleaners killed the lights, Man, that ain’t nice,
Gonna knock this program out, just like Kimbo Slice
I program all night, just like a champ,
Look alive under this IKEA lamp.
I code HARDER in the midnight hour,
E7 on the vending machine fuels my power.
Ps3 to Smartphones, our code use never ends,
JAVA’s there when I beat you in “Words with Friends”.
My developing skills are so fresh please discuss,
You better step your game up on that C++.
We know better than to use Dot N-E-T,
Even Dan Brown can’t code as hard as me.
You know JAVA’s gettin’ bigger, that’s a promise not a threat,
Let me code it on your brain
We code hard in these cubicles,
it’s the core component…of what we implement.
We code hard in these cubicles,
Straight to your JAVA Runtime Environment.
We code hard in these cubicles,
Keep the syntax light and the algorithm tight.
We code hard in these cubicles,
Gotta use JAVA if it’s gonna run right.
We code hard in these cubicles
JAVA keeps adapting, you know it’s built to last.
We code hard in these cubicles,
Robust and secure, so our swag’s on blast
CODE HARD10