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 - "embedded"
wk87 is a dangerous topic for me, i've been through a lot. I apologise for what I am about to inflict on this network over the coming week.
Most incompetent co-worker, candidate 1, "T".
T was an embedded C developer who talked openly about how he's been writing code since he was 14, knew all the C system libraries and functions like the back of his hand. For the most part, he did ... but not how to actually use them, as (based on his shocking ... well everything) he was inflicted by some sort of brain disorder not yet fully understood by medical science. Some highlights:
- Myself and the CTO spent 4 days teaching him what a circle buffer was and how to build one.
- His final circle buffer implementation had about 3 times as much code as he actually needed.
- When the code was running too slowly on the device, we didn't try find any performance improvements, or debug anything to see if there was anything taking too long. No not with T, T immediately blamed TCP for being inefficient.
- After he left we found a file called "TCP-Light" in his projects folder.
- He accused the CTO of having "violent tendencies" because he was playing with a marker tossing it up in the air and catching it.
- He once managed to leave his bank statements, jumper and TROUSERS in the bathroom and didn't realise until a building wide email went out.
- He once .... no hang on, seriously his fucking trousers, how?
- He accused us all of being fascists because we gave out to him for not driving with his glasses, despite the fact his license says he needs to (blind as a bat).
... why were his trousers off in the first place? and how do you forget ... or miss the pile of clothes and letters in a small bathroom.
Moving on, eventually he was fired, but the most depressing thing of all about T, is that he might not even be top of my list.
Tune in later for more practiceSafeHex's most incompetent co-worker!!!11
Just called Asus for a problem with my router, went to send them my systemlog.txt for analysis
"Oh we don't have an email you can send that to"
Me: "(me calling bullshit) let me talk to the tech team.."
"Hello this is the supervisor"
"Ya we don't have an email you can send that to, but we can use a different departments verification services to get a file from you, has to be a picture though"
Me: "What? I got a .txt file here, I just want to get it to you, does it really have to be a picture?"
"Has to be a picture or a PDF, we can't take txt files"
Me: "fkin.. srsly? Fine"
I can't believe Asus's system srsly. I think it's for virus protection, but viruses can be embedded in both picture formats and PDF, but not in txt. So wtf is going on lol15
A Decrementing loop that compares against a zero is faster (even though insignificant on current hardwares)
than an Incrementing loop that compares against a constant/variable.
for( i = num; i != 0; i -- )
is faster than
for( i = 0; i != num; i ++ )
The difference shows up significantly on resource constrained hardwares such as 8-bit microcontrollers.
More details in comment.45
At the beginning of an interview...
HR girl: You know, that position you applied is already taken but I found some similar in our company.
Me: Uhm, ok?
HRG: What about this one? It's some programming... *pointing at some IT position regarding db maintenance* Do you want to try that?
Me: Sure, why not.
I was applying to student position at embedded firmware development at the time. I did some school project with MySQL but it was few years back and I happily forgot most about it.
Anyway, story continues.
IT manager: Hi, I heard you want to join our lines.
Me: That is what I heard as well.
Me: I came for completely different position actually.
IT: Uhm, ok. We have standardised test, let's see what you can do.
It was some basic stuff for db guys but I was totally lost. I was done after 3 minutes returning nearly blank paper.
We shaked hands, both agreed this is not well fit for me and I went away.
After this botched attempt HR girl remembered that there is another team looking for embedded developer students. I was accepted.
Corporates are marvelous.3
Worked all day and got my embedded systems project working the first time! Bluetooth as well! 😁
It's a Fitbit clone that keeps track of steps that I did from scratch and writing the companion app from scratch as well in flutter/dart. Ask any questions if you're curious!35
Yesterday I used a company service account to email over 1,000 internal employees (mostly application managers and the like) about an old OS version their servers are using which must be upgraded in a few months. It's an automated email that will repeat each month until the servers are upgraded.
That is not the part that might get me fired.
The part that might get me fired is an easter egg I left in the html content of the email itself.
In the embedded html of the message, I buried a comment block that contains a full-screen ascii-art drawing of a spooky tree and grim reaper standing beside a tombstone. The tombstone has the OS info and dates on it. Beneath the ascii-art is a bastardized quote in homage to Metallica's "For Whom The Bell Tolls", referring to the OS end-of-life.
The ascii-art is visible in both the html and the internal git repo that contains the email template.
This is a bit of a shoe-horn for this weekly group rant, as I doubt there is any chance I would really be fired over this, as I (sadly) expect that absolutely NO ONE who receives the messages will ever actually see the comments. But it's out there in the corporate network now... and will be sent over and over for the next few months...
There is a better chance someone may catch the easter egg in the git repo, but I kind-of doubt that, too - so I wanted to at least share with my devRant friends that it's out there, so at least someone else knows than just me. 😝6
That's it. I fucking quit.
Over a month of unpaid work, developing your stupid course, only to get a high-quality outline rejected because "it's not what we wanted" again.
First outline, fuckers ask to do something with a Raspberry Pi and Yocto. Fine, but no Yocto as I don't know anything about it and the coworker doesn't even have a Raspberry Pi to flash the images on. Micromanagement guy (god I hate that word) agrees, fine no Yocto then. So no Yocto it is.
2 weeks later... Course outline is finished. Review stage.. rejected. Needs moar Yocto.
Fine... I'll include Yocto. Coworker was put off the course, I'm exclusively on it now. Time to do it well and get my feet wet with Yocto.
2 weeks later... Course outline is finished and looks pretty good. Review stage.. rejected. Needs less Raspberry Pi. Do it without the Raspberry Pi.
An embedded systems course whose core component is that fucking Raspberry Pi. Omit it they said. WHAT?!!
"Oh yeah but there's this other course that's selling like hot pockets, we can just redo that in videos. Make it more like that course."
You.. you can't be for real, can you? If students want to take that course... What makes you think that they wouldn't just pick.. *that damn course* then?
"But hey" micromanager said, "don't loose hope and confidence, I'm here🤪"
🤪. That describes your level of competence pretty well, you stinking piece of apeshit.
Go back to your micromanaging, at least you don't completely fucking suck at that.
2 times rejected because YOU fucking company's board can't describe your desires in a course properly. You know what, I think I'm starting to understand why web devs keep on complaining about indecisive clients now. Because you know company's board, you seem a lot like those clients from hell. Eat shit.
At a friend's party, I met one of the guys I've known from High school, and talk about what we've become:
Him: ...so yeah, now I study CS, I code some C, I dislike Java, blablablablabla I'm coding some OS and embedded software, blablablabla, and you, what do you code in?
Him: but those aren't programming languages? I mean, you can't manage memory, and blablablabla-
Me: Ó_Õ * Quickly dashed my ass off to talk with some ladies and boozed myself to forget what I just heard *31
Beauty (crazyflie) and the beast (me).
A continuation of the vision based control for nano-drones project I posted a while ago.
I am super grateful for my advisors for investing in me more than I thought I deserve.27
"Europe to make it illegal to change the OS on radio devices like smartphones, routers and embedded devices."
I don't know what to say anymore32
"We see you have JS experience, how about a job as a Senior C Embedded systems engineer, we can only pay 30$ an hour "2
This was my day at work today
-Be me at work
-Use git terminal on WORK PROVIDED MacBook
-Decide to clone into a repo into another repo as it was one project inside another project
-Makes changes to code
-Attempts to add .
- warning: adding embedded git repo ...
-Apparently needs submodules
-Shit doesn't get added
-During this get asked to create 2 new branches and modify some code
-Do that specifying files to add as add . breaks everything
-Has 3 branches now detached from master
-Super confused where anything is and what's going on
-Go back to branch for other repo to get added to
-Spends 30 minutes trying to understand submodules
-Gives up and deletes folder moving it elsewhere
-Commits begin failing everywhere. Super confused.
-Get everything figured out and commiting
-Goto merge all branches to master
-Merge conflict with .DS_Store
I think I'm done guys13
My mother used to code a good 30 years ago (embedded development for plane engines), but nowadays always fear doing something wrong on her computer/smartphone.
It's a bit depressing to see how someone who used to be a developer is now so fearful of computers.
On the plus side, she is very respective of my time, and will wait 2/3 weeks for me to come home to fix a simple thing, and generally don't bother me with things she can do herself, once I explain to her how to do it.
Last time was cleaning laptop fans. Seeing how you need to disassemble half of it to clean that, I can understand anyone not wanting to do it.7
Bittersweet moment today, the interns last day was today, the improvements they made over the last 4 months, putting up with my “Gordon Ramsey” style attitude... definitely goes down in the books as one of best groups of freshman interns. They all truly thanked me for what they learned I sat them down and did a code review with them... but fooled them and showed them code they wrote 4 months ago.. they totally forgot about.. and couldn’t believe it was their own code.. that’s the level professionalism and improvement they made writing embedded software in 4 months.. they can’t wait to for next summer, neither can I.
Even had some of the electrical interns asking our department manager if they could switch to more software focused during their next rotation. Just so they can be under me.
I may be hard and a dick at time... but they learn! And it says a lot when you have college students impacted enough and see other students benefit so much that the “outsiders” wanna switch majors or focuses.!3
Hai devRant! Working on the privacy app and want opinions on the page for details on specific apps (as in, applications so web/app/mobile or even embedded?!).
Yeah I know that the aligning is deffo not perfect but hey, gotta start somewhere :). Detail: everything you see here (the content and actually also the icon path) is rendered from the database already.
I receive those Nigerian prince scam emails all the time. I've always wanted to know more about them. So I sent them an embedded IP grabbing image link in my reply.
Turns out they really are from Nigeria. Just reported them to their ISP. Take that you pricks 😛 !!!6
Someday in an embedded course:
Lecturer: "You'll want the following drivers and SDK for this lecrure. With some tweaks it'll also work on Windows."
Guy with shiny Mac infront: "What about Mac?"
Lecturer: "WTF? You don't use Mac for embedded systems." o.O
Me: lol 😁5
So I got a call from a recruiter this morning, about a job for a C++ developer what experience developing for embedded systems.
He sent my resume off to the company and they actually want an in person interview the same day.
I'm going to this interview in 2 hours, I'm really nervous, I haven't had an interview in years...
Wish me luck!12
Client: "I cannot understand why the page loads so slowly"
Me: "Maybe it's because of the 68 YouTube videos you just embedded"
Lost a bet and switched from Vim to VS Code for a day. Ten minutes into, I found myself editing gitignore in the embedded terminal. Something went wrong.4
Give me a 10 year old application with no comments, layers of spaghetti code, global variables, embedded SQL, and a text editor with no debugging; just don’t make me write Excel formulas.6
I’m on the bus going to my first day at a new internship as a embedded C developer. Feeling very excited abou it .8
LED! Please, embedded programmers: STOP blinking LEDs, if you don't require immediate attention!!
That phone that would blink through the night charging, I had to put a blanket on it D:<<11
I *hate* how being a hacker nowadays gets you so much bad cred. I do things like exploits against embedded devices to be able to understand them and repair them, physical hacks to repair a broken device (like cutting a notch in something to make a replacement part fit), and things like that. Being a hacker does NOT mean I'm part of some government takeover bullsh*t set out to hack the pentagon or rig the election. It also does NOT include mindless banging on a keyboard. And no, I cannot hack someone's facebook for you, track someone's device, etc. Just..no.13
I created a GitHub Profile Card widget that can be easily embedded in your portfolio 🎉
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
When working in embedded, you basically write your program, compile it and flash it on some hardware.
Compiling and flashing usually require some black magic commands with lots of parameters so i set up two shortcuts in my terminal
yolo to compile
swag to flash
Understandably i keep it to myself1
Soooo I think I have finally come to the point that I may have to create a YouTube channel, to teach software engineering from the ground up... and teach it the way the universities and everyone else should be teaching it, so that they have a solid foundation.... throwing hello world, and loops and variables at folks out of the box without any of the environment context or low level embedded register, even logic gate understanding
That lack of understanding is why, soooo many college students and younger folks, are actually pretty shitty engineers. Everything is high level languages and theoretical concepts to them. Nothing practical, that’s why there’s sooo many python and java developers that can’t for the life of them understand memory management, low level hardware interfacing etc, because the colleges don’t teach it the way it use to be taught.
I seriously fear 30 years from now or sooner when there are few embedded engineers only left till retirement, as without those folks the whole pyramid of electronics falls to pieces.
Java, C#, python, all that shit don’t run on the bare metal... there’s this magical layer of C, and assembler that does all the work just so folks can abstract their thoughts.
Either 1 of two situations will happen.. price of electronics will rise because the embedded guys are few and far between therefore salaries skyrocket... OR everything starts running shit like java on the metal, where there are a over abundance of developers, their salaries will be low because there are soo many but the processing power, space, and energy needed to run java natively causes electronics cost to increase
but regardless 30 years from now if those script kiddies are building everything I fear it cuz there’s gonna be memory leaks, and overflow issues everywhere.. shit be blowing up more than 4th of July.. lol
Soooo in effort to prevent that and keep the embedded engineers up, or atleast properly educate the script kiddies, I’m gonna make that YouTube channel.. 1 maybe 2 videos a week, 1-2 hours sessions each.. starting at the fucken ground and building up.42
So I've written the c part for deploying the NN to the drone. Now I have to wait for the guys who are actually the creators of this platform to fix a tiny bug in the quantization process. Then I can test my code and see the 100000 bugs that I have.
Been reading devRant for a while now and I have to say I'm sad about the way the future of the software engineering looks like. Everyone seems to have a lot of hatred towards certain techniques and/or platforms and sad to say, but you are missing a lot.
I have been in the biz for around 15 years and have worked on Win, Linux, Mac, Unix, Symbian, Embedded etc. using all sorts of tools and languages and I must say it has taught me a lot and given diversity on my career and I hope you could also open your mind and start educating yourselves. Theres a world behind your bubble!
Peace and love!13
Today we presented our project in Embedded Systems. We made our so called "Blinkdiagnosegerät" (blink diagnosis device) which is used to get error codes from older verhicles which use the check enginge light to output the error. (for reference: http://up.picr.de/7461761jwd.jpg ) This was common for vehicles without OBD.
We made our own PCB, made a small database for 2 vehicles and used a Suzuki Samurai instrument cluster for the presentation (hooked up to an Arduino UNO and a relay for emulating some Error Codes)
Got an 1.0 (A) for the project. Feel proud for the first project done in C++ and making our own PCB. So no rant, just a good day after all the stress in the last weeks doing all assignements and presentations.
Next week we hopefully finish our inverse pendulum in Simulink and then the exams are close. :D20
I seriously do not understand the rants against Windows.
I love Windows 10 (got as free upgrade from MS), and have no issues with MacOS or Linux OS. I use them as well but do all serious work on Windows.
All my life, I have worked on business / commercial side and picked up Web development in last couple of years. I started using computers on DOS in 1992, and shifted to Windows 3.0 in 1995. There was no Mac or MacOS back then.
For serious work, I purchased a old Dell Precision M4700 workstation grade laptop with quad-core i7, at throwaway price, got 32GB RAM, 2.4TB (1x2 TB + 400gb) of SSD on super sale online, and installed it myself. It easily supports dual 4k monitors.
Git-bash on windows allows all the necessary linux command line on windows. Though not tried, Windows 10 allows embedded Ubunutu with linux terminal. Web development tools like - VSCode, git, github / bitbucket clients, NVM/Node, React / Redux / Webpack / Gatsby / Jest, REST clients, GraphQL client and server, Graph Server, Chrome PWA / Chrome Dev Tools, http/Websocket/WebRTC interception, Google Firebase SDKs, AWS sdks, cloud utilities, CI/CD tools work flawlessly. Windows even has its own package manager for applications.31
To my fellow 🐍 charmers:
You should see in C to understand C, else you'll never see what's in C. It's a big sea, you better start C. 😍16
Where I work we develop drivers and command-line software for embedded systems. The contracts we have with our customers tend to be in the £100k-£500k range and are usually completed in 6 - 9 months; our team is made up of 20 developers. You would think that it would be worthwhile investing in the department. But no, instead we have to deal with >10 year old build servers on their last legs; limited numbers of development boards with wires soldered on so that we can keep up with new board revisions; no room for R&D into new products; and to top it all off, not one of the executives has a laptop on par with the placement students in the next department. It's like the company is trying to kill the department, we've seen our staffing dwindle with no new graduate (or higher) positions being made available in the last 3 years while we've lost at least 5 people to other places. I just don't get it!3
I am having fun building a captured wifi portal. It shows up as "Virus Distribution Point" as an open AP. If you connect to the AP it brings up a page that looks like the picture.
Right now it is an embedded webpage. Strings in a source file. Eventually I would like to turn this into a product of sorts that would make it easy for someone to use for advertising/pranks. So I expect I will need to create some sort of simple toolset for updating the pages and changing the SSID and the passcode (if any).8
Last night I compiled my first kernel module!
I'm not talking about a ./configure; make; sudo make install kind of thing...
I wrote, compiled, loaded the module and saw my silly "Hello World!" message on dmesg!
Using some previous experience on embedded I fired up qemu with a fresh buildroot image and the kernel image I just made, thus I can now test and debug without doing kernel changes to my workstation!
So yeah, I'm a little excited :-D5
There is special hell for people using GOTO in C and even more special hell for people using it in *this* context.11
When searching for internship via school I found this small startup with this cute project of building a teaching tool for programming. There were back then 2 programmers: the founder and the co-founder.
Then like 1 week before the internship started, the co-founder had a burnout and had to get off the project, while the company was so low on budget the founder, aka my new b0ss, had to work separate jobs to keep the company alive. (quite metal tbh)
It's funny because I'm a junior developer, 100%. I've been coding as a hobby for around 8 years now but I've never worked in a big company before. (No exception to this workplace either)
First project I get: rewrite the compiler. The Python compiler.
"But wait, why not just embed a real compiler from the first case?"
-nanananana it's never simple, as you probably know from your own projects.
The new compiler, as compared to existing embedded compiler solutions out there, needed these prime features:
- Walk through the code (debugger style), but programmatically.
- Show custom exceptions (ex: "A colon is needed at the end of an if-statement" instead of "Syntax error line 3")
- Have a "Did-you-mean this variable?" error for usage of unassigned variables.
- Be able to be embedded in Unity's WebGL build target
All for the use case of being a friendly compiler.
The last dash in the list is actually the biggest bottleneck which excluded all existing open-source projects (i could find). Compliant with WebAssembly I can't use threads among other things, IL2CPP has lots of restrictions, Unity has some as well...
Oh and it should of course be built using test-driven development.
"Good luck!" - said the founder, first day of work as she then traveled to USA for **3 weeks**, leaving me solo with the to-be-made codebase and humongous list of requirements.
I just finished the 6th week of internship, boss has been at "HQ" for 3 weeks now, and I just hit the biggest milestone yet for this project.
Yes I've been succeeding! This project has gone so well, and I'm surprising myself how much code I've been pumping out during these weeks.
I'm up now at almost 40'000 lines of source and 30'000 lines of code. ‼
( Biggest project I've ever worked on previously was at 8'000 lines of code )
The milestone (that I finished today) was for loops! As been trying to showcase in the GIF.
It's such a giant project and I can honestly say I've done some good work here. Self-five. Over-performing is a thing.
The things that makes me shiver though is that most that use this application will never know the intricates of it's insides, and the brain work put into it.
The project is probably over-engineered. A lot. Having a home-made compiler gives us a lot of flexibility for our product as we're trying to make more of a "pedagogic IDE". But no matter that I reinvented the wheel for the 105Gth time, it's still the most fun I've had with a project to date.
Also btw if anyone wants to see source code, please give me good reasons as I'm actively trying to convince my boss to make the compiler open-source.
1 friend who is currently studying in Canada.
I am not aware if he uses devrant or not.
Met him in a national robotic competition 3 years back.
Somehow, we exchanged numbers and nowadays we talk often whenever we get time (considering our busy life and timezone difference)
He is studying robotics and frequently sends me his designs and output with 3D printer.
About me, I left robotics(to be specific embedded) and got a job and working on backend these days.
Though, it's great talking to him and getting to know how the education goes there and his new works.
He also has a beautiful love story(not yet completed) which is another fun part to listen from him.
Our team is currently working with an Excel document that uses visual basic to talk to an embedded system. We're talking reading memory locations in Excel.12
Got a new eval board. It came in with a stock firmware, had its own IP and naturally its own webGUI. I wanted to check what was under the hood. So I SSH'd in to the device, and was prompted to enter the username. There weren't any specs or documentation.
*Hmm, let's try root*
Password: *Eh? Well, what the heck* admin
Muhahaha!!! Meet your hacker, eval board!3
I once saw this comment inside two embedded empty loop :
// WHY, OH GOD WHY!
Turns out somebody deleted the content but not the loop. The next dev added the comment but kept the loop.
Designer decide to have a meeting with stakeholders about UX/UI workflow for control panel of our new embedded system (no framework, no library, gui is bit per bit rendered on frame buffer).
A week later, still nothing on my table, not a mail, not a call. Meanwhile I wrote a framework, the control system, renderer, and messaging queues between tasks.
Wrote some widgets, a layout system and a view swtching mechanism, and a separate stack control to use a "back" button.
Now I am stuck for I do not know what should happen when clicking on various (non obvious) items on the touchscreen.
Fine, I'll ask the designer.
"Oh, I will write the workflow next week" (ETA time, 2 weeks. Seriously? You take a week to draw on Adobe Illustrator 20 screenshot with text and I have another week to write it from scratch in C?)
Ok, while you write it, just tell me what should happen when I click an active item.
"Well, we didn't talk about that. We just decided the colour of the icons on the screen..."
For fuck sake...8
I just noticed... a lot of people who are into tech also like anime. Is the love for anime just embedded into our technological souls?28
Recently for a project I needed to read/write ID3 tags from MP3 files. And after a long search, I found this bloated, monolithic but quite stable library, "getID3".
So, I was looking through the code-base and I found this. This guy literally storing the key value based data embedded as comments within the class file. Then wrote a method to parse the data and even used caching to ensure maximum speed! And such usage is repeated all over the code-base.
So, this is what people used do before arrays were invented :314
Because of some requirements stated by an advertising agency I'm doing a job for, I need the SVG logo for the company I'm building a website.
I've been asking for more than 2 weeks for a single vector logo, be it AI, PDF, SVG or whatever.
They keep sending me 1GB of PSDs with NO VECTOR LOGO, only a really small one, embedded in a photograph together with tons of hidden layers.
Some designers are really great and do get things quickly, others are just potatoes.9
We are developing a single page APPLICATION which will be embeded into another single page APPLICATION using iframes (!?!?!?!). The embedded SINGLE PAGE application has POPUPS (browser instances, not UI popups) opened. Every app contains at least 75% of the other apps and they do not share common code. Everything in IE11 and ng4.10
Well done, T-Mobile!
They have an iOS app to handle contract stuff. That app integrates their shop system via an internal browser.
The shop notifies me, that the used browser is not supported by the shop...
Oh and the browser is an embedded safari on iOS 12.5
Sales guy calls up from overseas and complains website we got developed from another vendor is not working.
Being just the middle man who project managed the website development with the offshore vendor, I had no clue what was wrong as the site was working fine and "worksforme" was not going to be acceptable answer for the costumer demo.
Being an embedded drivers guy, had no idea to debug this, except one:
Me: Which browser are you using?
Me: try any browser other than I.E
Him: it works. Thanks
Pushed code remotely and told a teammate to run it on the target hardware. He then told me he might of blown up $6000 worth of equipment. Then he says "Never mind everything works."
World record for biggest heart attack?1
UI Is the bane of my existence. I'm an embedded programmer i mainly deal with drivers daemons low level stuff no UI involved. why do they keep assigning mobile apps to me man ! #FML6
Why do clients send everything embedded in a word document. Can you send me the jpeg? I receive a word document. (It's always word 2003 for some reason).2
Today, my true developer saga begins. First job as an embedded developer and I am prepared with my flaming dark themed rubber duck debugger. What could go wrong? :D4
I'm a bit weary of devRant being almost software-exclusive. I want to see more about hardware development here (and not just people playing with Arduinos)!
Electronics guys of devRant: Do you exist? What are you working on? Or is really everyone here a web developer?
(GIF related: My soldering irons heating up, the third one being my weekend project from last weekend. Seeing it coming in last, I'll probably have to tune its control parameters a bit more…)12
Okay, first rant here.
Spend most of my morning searching for a js file that was supposed to build some graphs in a report page in this legacy system (still in active development) just to find it embedded inside a random .php file being included inside a wall of if-elses (that shit has around 100 lines) on the index.php (that somehow manages to route all the nonsense that's going on there).. was it really that difficult to make it a proper .js file? and actually import it on the page that is using it? c'mon...4
Next month I'm starting my master studies in embedded systems. Currently I have not any knowledge in this topic (made my bachelor in an other part of IT). Any tips or tricks?
Currently I'm starting learning C++ 😅13
Second coolest project that I have worked was optimizing an algorithm that used images to speedup by 2000x by parallel processing. While the cpu took 7.34 seconds to process just one image and source, the parallel embedded code did it just in 0.0034 :) The coolest one is still in progress where I am building an Ai for my mac control ;)
What is the point of disabling the fullscreen button on a youtube video embed?
And funnily enough, I seem to find this on a lot of sites for software, that have a demo video embedded the page or some shit, like a screen recording in this tiny little frame where I can't read anything because it's in this 400 pixel wide box, that I can't fullscreen. I don't understand it at all! What purpose does it serve? You're actually encouraging me to leave your stupid site to view the damn video on youtube.com so I can actually read the text in your stupid ass video.
Why does youtube even give you the option to remove the fullscreen button in your embeds in the first place? They even recently removed some of the "modest branding" features, like hiding the title, or removing the recommended videos at the end, but they thought that this feature was valuable enough to keep?
This may seem irrational to complain about, but I'm confused and befuddled more than anything else? If I'm embedding a video on a website, the last thought I have in my mind is "Oh, I really don't want people to see my video fullscreen. Better make sure I disable that!"3
Why do websites have to make their html so fucking hard and complicated to read with something like beautifulsoup. Like I just want to scrape your data. Fuck your embedded iframes and div lists. Why must you do this I JUST WANT YOUR DATA18
Why is pointers... bit shifting.. malloc.. anything that is regarding embedded development is so hard to grasp...18
First year: intro to programming, basic data structures and algos, parallel programming, databases and a project to finish it. Homework should be kept track of via some version control. Should also be some calculus and linear algebra.
Introduce more complex subjects such as programming paradigms, compilers and language theory, low level programming + logic design + basic processor design, logic for system verification, statistics and graph theory. Should also be a project with a company.
Advanced algos, datastructures and algorithm analysis. Intro to Computer and data security. Optional courses in graphics programming, machine learning, compilers and automata, embedded systems etc. ends with a big project that goes in depth into a CS subject, not a regular software project in java basically.4
What kind of developer are you and what is your opinion on other development areas?
Me: Junior dev, oriented towards full stack and Android(with a sysadmin background):
-Low-level(kernel development, embedded, drivers, operating systems, reverse engineers)- Badass, I wish I could do that.
-Mobile apps- awesome but too high level sometimes.
-Full stack/Backend- awesome.
-Web Frontend- fuck HTML+CSS. JS is cool I guess.
-Enterprise applications(e.g SAP) Pajeet, my son.
-Malware development- Holy shit that is awesome.
-Video Game development- was my dream since childhood.
-Desktop apps- No opinion.5
Created a batch file to modify some system files on our embedded system.
Accidentally double clicked it in my development main machine :(
Man, fm fucking l2
This is my first rant here, so I hope everyone has a good time reading it.
So, the company I am working for got me going on the task to do a rewrite of a firmware that was extended for about 20 years now. Which is fine, since all new machines will be on a new platform anyways. (The old firmware was written for an 8051 initially. That thing has 256 byte of ram. Just imagine the usage of unions and bitfields...)
So, me and a few colleagues go ahead and start from scratch.
In the meantime however, the client has hired one single lonely developer. Keep in mind that nobody there understands code!
And oh boy did he go nuts on the old code, only for having it used on the very last machine of the old platform, ever! Everything after that one will have our firmware!
There are other machines in that series, using the original extended firmware. Nothing is compatible, bootloaders do not match, memory layouts do not match, code is a horrible mess now, the client is writing the specification RIGHT NOW (mind, the machine is already sold to customers), there are no tests, and for the grand finale, the guy canceled his job and went to a different company. Did I mention the bugs it has and the features it lacks?
Guess who's got to maintain that single abomination of a firmware now?2
Yeah! Have one week to write from scratch a standalone app with an embedded db that I've never worked with in an area that I have close to no knowledge and it's all my fault , wish me luck 🙏3
I'd never imagine that my interests would shift from webapps and servers to embedded devices and measuring 500volts with an arduino....1
Customer requested the implementation of a "Master PIN" Code for accessing their appliances, to be used by field technicians when the users forgot their PIN.
Actually they could also read or reset it via USB using the config utility, but then again it's much more convenient not having to carry a laptop all the time...
Our only contact person at that company - the guy we got all the requirements from, let's call him Mr. L - wouldn't talk only positive about the company and managers, but we never worried as the project was making good progress.
In the final phase of the project, Mr. L was often hard to reach, always seemed to be busy even when we just needed a prototype approved to start production.
He always claimed to be waiting for approval from his supervisors and engineers, still discussing minor things with them.
When he left the company about three months later, it turned out he was pretty much the only person knowing about the details of the project, and his successor would start asking us very basic questions about the appliance,
wondering why we had implemented certain things the way they were.
(Well, how about we implemented everything just as requested by a former co-worker of yours?!)
Somewhere in the preliminary specs previously exchanged with Mr. L, there is even a hint of a "Master PIN", but the value is never specified anywhere on paper.
Today, we are not sure if anyone except for him even knew about it.
Maybe we should ask them whether they are now selling a product that has a 4-digit backdoor PIN nobody at the company is aware of?
Obviously, it is the birth year of Mr. L.2
I'll just start off with how I really feel. Fuck big corporations with their career robots and retarded practices!
Now for a story. So I work remotely for most of the time nowadays, since my company has as clients big corporations. Used to be embedded with said clients, but it became kind of painful to work with them all so I asked to be reassigned to a remote position.
Now for the retarded part: The fucking Klingons I'm working with have two tiers to their VPN, but won't let me have the full version because it would be too fucking expensive. I checked and it's fucking 50 bucks per year difference.
So for that the Klingons are making me code through a remote connection that has a "best effort" priority.
Anyway after 3 weeks of writing code at a 400-600ms latency I finally snap.
I try to use a proxy and it. I write one myself, gets balcklisted in 2 days.
After about another week of writing code through a fuck straw I start working on node socket with 2 clients and a server that encrypts the send data, and syncs 2 folders between my workstation and the remote one.
It's been a month now and it is still working. It's not perfect, but I can at least write code without lag.
Question for you peeps: What shenanigans have you pulled to bypass shit like this?4
Some weeks ago I read a rant about someone saying that it's superior uses Word for webpages.
This is sick, it's a fucking word document, with an embedded picture.
I started writing code at a young age, nodding games, building websites, modifying hex files, hacking etc... I started my career off tho in highschool writing embedded code for a local medical robotics company, and also got tasked with building the mobile app to control these robots and use them for diagnostics, etc.... this was before the App bubble, before there was app degree and that bullshit.. anyway graduated highschool, went to college to get a comp sci degree.
Wanted to teach for the university and research AI...
well I dropped out of college after 3 years, cuz I spent more time at work than in class. (I was a software consultant) in the auto industry in Detroit. I wasn’t learning anything I didn’t already know or could learn from books or a quick google search.
I also didn’t like the approach professors and the department taught software... way none of the kids had a good foundation of what the fuck they were doing... and everyone relied on the god damn IDEs... so I said fuck it and dropped out after getting in plenty of arguments with the professors and department leads.
I probably should have choose CE .. but whatever CS imo still needs a solid CE/EE foundation without it, 30 years from now I fear what will become of the industry of electronics... when all current gen folks are retired and nobody to write the embedded code, that literally ALLLLL consumer electronics runs on. Newer generations don’t understand pointers, proper memory management etc.
So I combined both passion AI and knowledge of software in general and embedded software, and been working on my career in the auto industry without a degree, never looked back.2
First it was the "set up WampServer so the client can use our database", to which I told her we should use an embedded database, to which she told me to do.
Then the "Just give the client a .jar file and install the JRE in his laptop" to wich I told her we can make a native installer, to which she fucking assigned to me.
Then the whole fucked up management thing with no design whatsoever and the "we don't need version control".
To just a few hours earlier, when she got mad because I set up a Slack for us to exchange information easily, she told me she was already mad because I shared the project by Google Drive and that she worked in security and knows the risk... AND AT THE SAME TIME, she uses Gmail to share the project.. BRILLIANT !7
Got an assignment in school to make an easy project in c for embedded real time processors with a free complexity level (it was really early in the course and many had never been programming before).
Since I've been working a few years in development I decided to create an own transmitter and receiver for an own protocol between processors (we had just spent a week to understand how to use existing protocols, but I made my own).
The protocol used only 1 line to communicate with half-duplex and we're self adjusting the syncing frequency during the transmission. I managed to transmit data up to 1 kbps after tweaking it a bit (the only holdback was the processors clock frequency).
Then I got the feedback from our teacher, which basically said:
"Your protocol looks like any other protocol out there. Have you considered using an UART?"
Like yeah, I see the car you built there looks like any other car out there, have you considered using a Volvo instead?1
I felt like being the cause for “that dreaded legacy code“ and wrote 250 lines of C preprocessor macros for generating bitfields in a large header file automatically, with the goal of simplifying and clarifying register access for all peripherals in the end. Then, I found out that SDCC's optimisation for bitfields is absolutely awful (if existent at all), and I don't really want to use these abstractions if they have a performance impact.
Did I deserve that?7
Ye, so after studying for an eternity and doing some odd jobs here and there, all I can show for are following traits:
* Super knowledgeable in arm/Intel assembly language
* C-Veteran with knowledge of some sick and nasty C-hacks/tricks which would even sour the mood of your grandma
* Acquired disdain of any and all scripting languages (how dare you write something in one line for which I need a whole library for!)
* All-in-all low-level programmer type of guy (gimme those juicy registers to write into!)
After completing the mandatory part of my computer science studies, all I did was immerse myself into low-level stuff. Even started to hold lectures and all.
Now I'm at the cusp of being let free into the open market.
The thing is: I'm pretty sure that no company is really interested in my knowledge, as no one really writes assembly anymore.
Sure, embedded programming is still a thing, but even that is becoming increasingly more abstract, with God knows how many layers of software between the hardware and the dev, just to hide all the scary bits underneath.
So, are there people in here who're actually exposed to assembly or any hands-on hardware-programming?
Like, on a "which bit in which register/addr do I need to set" - kind of way.
And if so, what would you say someone like me should lookout for in a company to match my interest to theirs?
Or is it just a pipe dream, so I'd need to brace myself to a mundane software engineer career where I have to process a ticket at a time?
(Just to give a reference: even the most hardware-inclined companies I found "near" me are developing UIs with HTML5 to be used in some such environment ....)14
So I work on Embedded System. While working on my project I was drinking water from bottle.
And kept it near my laptop.
Just there all my circuits were open. Connected via USB with my laptop.
And while working I tried grab the bottle and guess what?
Yeah, It fell. But thankfully it didn't touch any of my circuits. If it did!!!!
I was frozen on spot.
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
client "it's ok we have a logo"
2 days later... receive a Word doc in an email with clients pixelated logo embedded
Do you guys think it’s time “Hackers” gets its 2020 remake? I know it was cheesy for its time (1995) but 8 year old me was INTO that music video montage direction and that movie inspired was what inspired me to get into tinkering with electronics/embedded systems.
Rewatching it tonight and the casting is so on point, too.5
Arguing with a co worker.... he is writing a serial data plotter, and wants me to send the data as text. I’m like ugh no I’m not wasting bandwidth for text data, you are getting it as binary, as my embedded system has a lot of other stuff todo than send debug info, so the quicker I get the data to you the better... plus his program is running on a pc there is no issue regarding resources handling binary data.
He tells me I’m am wrong, and is trying to defend his stance, then all the electrical engineers and other software engineers all stand up and said why in the hell would it be faster to send text than binary? He has no response.23
So, I'm still not certain if it's actually a bug or merely my lack of experience, but I've been working on a 2D platformer game (using only C++ and SDL2) for roughly 2 years now (on and off; sometimes off for months) and I'm extremely embarrassed about this, but for the life of me, I cannot seem to get the player character's movement and collision physics working properly. It's driving me absolutely insane.
I've read articles and tutorials, referenced books, and posted about it in game development communities (e.g., gamedev.com, Discord servers, etc.), but even though the fundamental structure and explanations made sense, getting the code to work has been unsuccessful, albeit not completely so, but if I get one thing working, another thing breaks. It feels like I'm trying to repair a vase that fell off of a skyscraper and turned to dust on the street below.
I've always been a very tech savvy person with a fiery passion for programming, electronics and game/software/embedded/web development, but to be honest, having such a difficult time with things like this that — in theory, at least — seem like trivial bumps in the road have made me feel like I'm never going to be successful in this field. But regardless of the depressing thoughts of worthlessness, my passion doesn't let me stop trying. Who knows, maybe it'll have to remain just a hobby. 😕6
So, here is the worst experience, not one.. but recent two of many of the encounters I had with my OOP teacher... (I am in Second Year of Engineering). Lets Call him T.
To give a background of T... He knows nothing but acts like he is the master... you'll get to know this...
*me developing a website for a client and T just bumps in*
T: Hey, what are you upto.
M:Nothing sir, just some Web-dev stuff.
T: What languages do you use?
M: I am currently using embedded ruby.
T: No no, I meant, what languages do you use for web-dev?
*inner* M: Ok, try to act stupid... He is not worth of all the knowledge.
M: Sorry sir, I just use simple HTML-CSS.
T: Ohh, I use Wordpress... It's a great language to build websites.
*inner* M: He has no idea what WP really is, he is a fuckshit.
T: It's so simple and easy, that you code for Desktop view, press Ctrl-M and then it automatically makes it for mobile view.
*inner* M: Bursts out into laughter
M: OK sir, will look over it.
*He is teaching, suddenly topic comes of Oracle Certification for Java*
T: I know many of you have idea about java, but do you have what it takes to be an OCJP..
*inner* M: LOL...
T: It is a really hard thing, and I can bet... I can bet *he did repeat that twice* that no one from you can even qualify OCJP.
*inner* M: It's time... It's time
M: Excuse me sir, first of all it's OCA... OCJP does not exist anymore... And secondly, I am an OCA...
*inner* M: Yeah... Fuck you bitch!
*assucimg inner* T:Fuck, asshole..$#@#%@!@$@%#
And whole class was like -> o.O1
it was my first job as an embedded engineer i was hired to write firmware for arm microcontroller that has ble radio. But the microcontroller we used didn't have FLASH it had a SRAM and an otp ( one time programmable) memory. In ble you can make a proximity beacon and When a phone passes by this beacon it will get a notification '<device_name> nearby'
. I thought it is funny if i keep device name 'MILF' (original name of device is FLIP ) so when somebody's phone is in proximity it will have a notification 'MILF nearby'. joke didn't work as nobody has their bluetooth switched on by default ,but i forgot to change it before programming otp memory.
i just buried that device and told everyone it is not working properly1
Company is about to get certified to ISO 9001:
Kick-off meeting with consultant announced weeks ago, mandatory for all employees.
Everyone is kind of joking about it, but also looking forward to certain workflows maybe changing to the better.
Two hours before meeting, told by CTO not to attend.
Some code I hadn't touched for half a year needs urgent patching to make the equipment pass EMC test (doing so within a few hours would help us save the lab cost for another day of testing).
When they applied RF noise to the bus lines, the CAN peripheral would glitch and need reset, this should happen covertly the first few times without raising any error to the user, so they could just finish the testing without being disturbed by the error - and the EMC lab will not test the functionality of the device after all.
The irony when you were actually supposed to learn about quality that day...1
bool firstRant = true;
I've been lurking for a few weeks. I just got my first ever full time position as an embedded systems programmer for a small-ish company. For context, my background is with application devlopment, not embedded systems, so I am surprised I even got the position.
Regardless, I am kind of pissed off because the pay is only like $13.50 an hour (I live in California, the minimum wage here is $11.00 an hour.) I think it is bullshit but this job is my best option. Im still fucking salty and I know people woth internships that pay $20 an hour.8
So I'm taking embedded systems subject in my masters course. They have mixed this subject's content with electrical engineering and I'm a computer science graduate. Everything was perfect until I reached to GPIO board.
Wtf is this shit?
Why it has so many holes and what are they for?
What I'm supposed to do with it?
What is ground? Transistor?
Why I'm connecting to two pins only instead of the 4 pins of a button?
Thanks to pi4j i think i will pass the subject!2
Currently i am working as a student at a teaching chair for embedded systems, so my boss is the professor there and the subject of this weeks story 😄
He is very passionate about his field and keeps close contact to the students and their representatives.
He invests a lot of resources into getting students to learn and make projects and pays us to supervise a hands on course for students to build IoT projects.
As employees we get to work on interesting projects and he listens to us and our concerns if we feel a project is having certain problems.1
My wife often listen my rants about stupid clients, she thinks that I hope to much from them. Like image as actual image not fucking embedded in word document.
Today she agreed to help her friend and make name cards for tables. Got list of names ;) one photo of paper with hand written names on it :D1
Yesterday, i had to use neovim for a task on my friend's laptop. There was no WiFi and I couldn't install Emacs. This guy uses Vim a lot. He recently moved to neovim from vim. He had some Ruby codes going. I had to debug some codes(performance issues). I was reluctant to work on it but i had to. After looking at some keybindings and the plugins that guy had written, using vim was pleasure. It was fast. I could shoot up multiple terminals work on that and was instant. I wrote some plugins to indent my code which worked as it's supposed to. I used spacemacs(as it's configured properly) Emacs but there is some load time on spacemacs and there are some issues shooting up multiple spacemacs on terminals. I had just configured and started using prelude which is beautiful Emacs configuration and is fast.
After using neovim that day something hit me that i had blindly had faith in Emacs without using Vim and i use Emacs only for text editing task and terminal. I don't use it for listening music, browser and other task i can always use modern browsers and Spotify for that. Modern browsers and music players are amazing and using those in Emacs there is always a lack of functionality and UI.(modern people don't use those i think and some Emacs users i know use stripped down version of Emacs i.e. microemacs or XEmacs.
I know vi is present by default on every Linux distribution. That keybindings are same as vim and it can be configured so, it is useful for embedded devices and system architecture. I love terminals and love working on tty. That's why i guess i felt instantly tempted to keep on using vim and i loved it's performance. I checked on evil layer before but there are some issues with evil layer in Emacs like it isn't too efficient like vim. I love lisp though and clojure can be edited nicely in Vim.
Is this sin against the church of Emacs? Should i join vi vi vi? I have already dedicated my life on Emacs (check my bio). Am i tempted by the devil?4
I love the first weeks after a job change. It's just like falling in love, everything seems to be perfect until you take off the pink glasses.
Have to wait until I'm assigned a burning project to have a full picture.
Actually I am in a burning project. Deadline in 2 weeks. Doing Bugfixes which do not require in-depth project knowledge, and... It's fine. All a matter of perspective. I also think that project based work suits me more than usual 15y old legacy enterprise shit. And I'm able to switch. From embedded C++ over hardware dev to fullstack .NET (I consider myself as a full-fullstack dev, able to do everything from hardware to frontend).
Topics such as IOT, medical, device engineering, machine learning. Wow.
It's my first company having >50 employees and multiple offices in multiple countries. I used to jump every 2 years from one shitty garage company to another.
Wish me good luck ✌️2
So our new hardware guy who is being managed by our lead embedded developer had the task of designing me an expansion board for my Linux board. The Linux board uses the 40 pin expansion like the raspberry, bananna and orange pi family and as you all know there are many different types of expansion boards for this.
I said at the start come to me and tell me what you want to connect to before deciding which pin you connect to so it is less work for me with Linux board configs and drivers.............
No no no we will sort it all... erm.....
So today they come ask me if they can use an SPI port for GPIO and I am like erm... why there is plenty of GPIO...
It turns out they have been designing the board based on the pin outs of an expansion board and not the actual connector of the Linux board.. I mean seriously WTF!1
Not too long ago, I was looking over my friend’s HTML with embedded CSS code. He had two separate style tags. I looked at him and asked: “Why do you have two style tags?”
He responds: “Because I’m a lazy boi”3
Saying Java is good because it runs on 3 billion devices is the same like saying mass public transport is good because it carry billions of people.11
When a Field Tech emails you about a problem and the screenshot is embedded in a Word Document. WTF, why can't they send it as a f'ing jpeg, gif, or IDK a png?
There are several categories of software development that I know of: front-end, back-end, full-stack, game, mobile, embedded etc., but what is the term for developing libraries and/or CLI utilities in languages like C++, Python, Go etc. that are not related with any of the above? System development doesn't seem wrong but I was wondering what's the correct term for it in the industry because I need to mention it in my resume and on LinkedIn.
Also, if there's a lesser-known category that you work on then do tell us all about it 🙂5
So we are using an open source remote update system for updating our embedded devices.
And today we learned that, that system logs ip-adress'. And low and behold mr.GDPR says that is a no no.
So either we completely drops it, finds a new update system and implements it..
Sift through all the source code of the update system "fix" it and recompile it.
Or we setup a Man in the middle attack on ourselves. To mask the ip-adress'.
GDPR encouraging hacking ourselves I fucking love it!5
Testers in my team have been told like 1000 times to follow the style guides that we all follow. That's not that big a deal. The big deal is that they were put on this project without having any mathematics background when the project is all about geometric stuff. So after me as a developer having to put so many hours to explain to them why the tests are not covering the requirements or why the tests are red because they are initializing the data completely wrong, I ask them pretty please to do the checks for the coding style and I have already been 4 hours reviewing code because not only I have to go through the maths and really obscure testing code to ensure that the tests are correct, but every line I have to write at least 4 or 5 style corrections. And some are not even about the code being clean, but about using wrong namespaces or not sticking to the internal data types. For fuck shake, this is embedded software and has to obey to certain security standards...3
One of my interviews....
Interviewer: Do you know the welknown hack that increases the speed of embedded tomcat two times than default??
Me: what?? it even exists???
interviewer: yes... it exists... I know it... normally I share the answers with the interviewees... are you interested to hear the hack???
Me: Hell yeah...
Interviewer: ohh no... I will not share with you...
interviewer: I don't like your current boss...
Me: Fuck my life(inaudible)... facepalm..3
In highschool, I was looking around for schools and universities at which I would start my student career. I went to a grad school one day, to see what it was like to be a student there. The first class I visited was programming for embedded systems. We got the assignment to write Java code to control a boom barrier. The teacher had written the template. And I kid you not, the template had a method of around 20 lines of code - without comments - with the purpose of carrying out a logical OR operation. An operation that literally can be done using an operator in Java: |
Why oh why do they let these people teach, with the result that the students will get used to these bad practises...5
Development tools for embedded projects shouldn't need fucking internet to operate. Every fucking app needing internet to even startup is getting more and more stupid. I do a LOT of development offline. I usually have my dev machine away from internet for weeks at a time. It very nice to not have to deal with update issues and the like during this time. So naturally I choose tools to do offline programming for both desktop and embedded. So I decided that for my embedded work I wanted to have better environment than Arduino IDE. Now enters VSCode with Platform IO. I download all the target platforms for my boards. I get it all working and installed. Then I take my computer to my non internet location. I fire up VSCode, select the platform, create a test project, and compile the code. Everything is working great. Then I go to upload the code to my board:
"Blah blah blah you need internet first time talking to a board blah blah blah." Seriously? WTF? Who does stupid shit like this? Once you install your dev tools they should be fucking installed! Now I have to drag my fucking dev boards to another location and do a test install just to do fucking offline programming.
FUCK YOU PLATFORM IO!
Notice I don't blame VSCode for this. I know this IDE is very internet dependent, but it works once you get your plugins installed regardless of internet. Unless of course you are doing internet based programming.3
Anyone else enjoy "uncropping" images embedded in MS Office documents? People cropping out other windows/tabs from full screenshots... I've seen some weird stuff!
It's not unusual to be sent documentation / screenshots saved as MS Office documents (Word, PowerPoint etc.). Kinda annoying but whatever.5
Today I'm beginning my third year of Bachelor in embedded computing. And just as last year, I'm bored as fck. "Learning" the same stuff over and over, and wasting my time when I could be at work as a PHP developer ... FML7
Just read a job posting for a junior .Net software dev. 2 years experience in C#, Visual Studio, .Net. Usual suspects right, though two years experience for a junior seems off. But they also want embedded systems experience. wat?4
Customer: URGENT, we are not receiving any email. (that's actually a really urgent issue)
Turns out that customer had an invalid base64 embedded image in is signature which was causing our system to crash.
Made invalid images move to oblivion and told the customer the issue was solved :D4
Architect: I've been using this architecture for 20 years now and this works nice since pascal, that's why we are using it in this J2EE app.
This was the justification that I received after hearing that I shouldn't use exceptions, just make the function return a false and add the error message to a embedded message list and make the caller capture it.6
Any embedded systems software engineers out there with practical experience in writing/designing safety critical applications? (think DO-178B/C) I've got a few years embedded experience under my belt between internships, my projects, and now my relatively new job at a major aviation company, but I feel like I'm behind on this topic of safety and code that can't fail. It's simply not taught and I really want to learn more. Partially it is out of personal pride because I want to make a great product, but more importantly, what I work on is protecting a human life. I really really really want to feel confident in what I build. Is there anyone out there who's got some years under their belt that can point me to some good references? Or maybe some helpful tips? Much appreciated. If it helps, all my work is in C.10
I’ve been trying to implement an alarm clock as an example for my physical computing lecture but the merge of my existing low power clock with my existing state machine based timer is driving me nuts. And I’m the lecturer of this course!2
Now everyone were sharing their worksetup I thought I would want too to.
So here it is.
I have two laptops (one belongs to startup I work at) I use same keyboard mouse for both using synergy.
I have my editor and node server in one laptop and I check them out on other laptop (both are medium range laptop hence they are not exactly powerful). I am running Linux mint in both.
Then I have some embedded stuff on desk which is my hobby(currently working on esp8266 dev board that I built).
You can also see a projector clock I built projecting current time on left beside my bigger laptop. (Projection is on wall beside it)1
Boss finds new chinese supplier for the lcds we use and tells me to make one work so we can see the new quality. All is good.. the lcd works. But at some point I start seeing some defects. Pretty annoying defects.
Boss tells me to explain the defects to the chinese engineers so that they can either fix it or tell us if we did something wrong. So I do it. I explain everything in detail as one engineer to another.
An hour after I submit the email I get called. The boss is furious that the email is bs. His reasons .. " We are working with cheap-ass chinese. None of their engineers know english. How do you expect anyone to understand all that stuff you said?!"
ffs.. i had to dumb it down to 5th grade english..1
I am about to try TDD for embedded C. Does anyone around here tried that? What are your experiences with it? Thanks!10
I was working with my embedded systems friend a few days ago on a website, and since we work with electronics, it was something new.
I then went home and started learning web development.
Holy shit I love it
So excited about this beast... wish I had a model f... but this will suffice for now.. definitely going to start collecting older stuff. As an embedded software engineer working on AI projects and such give you a good reference point of what was possible in the day with less14
NODE CRYPTO YOU PUSS RIDDEN CANCEROUS CYST ON THE SWEATY BALLSACK OF THE INTERNET... fucking explain to me how every mother fucking module in node with require(‘crypto’) in it throws a hissy fit at runtime when I call only 1 file with it in it?! These packages that I’m not fucking using by the way but are nonetheless included by default in node are the ones having a meltdown.. and nodes answer?! Use the embedded functions. WHAT THE ACTUAL FUCK?!! If I didn’t need it Node could go and get gang raped by an angry pack of silverback gorillas. Fuuuuuuucccckkkkk yoouuuuu2
After working with so many platforms and languages i think OpenSuse and QT5 is the best option for developing desktop/mobile/embedded solutions12
It was in old days when I was working in java and windows systems.
Java and different log4j versions across dependencies caused system not working only on production server.
Turned out some of libraries got log4j embedded and conflicted with other log4j.
It worked in all computers except production one.
Actually that was my main reason to switch my career to python after that dependency hell.
Another one was windows server 2008 tcp connection limit set to 200 or something.
We needed to change registry to get our servers working. After this case we finally managed to convince people to switch to linux.
Anyway any non standard error when you got multiple layers communicate with each other is hard, practice make it easier to solve those problems as your success moment comes faster.4
The application that was working fine on local host failed to do one task which is to read users data from excel and save it on mongo db, in some collection document's embedded document. My last night and today morning was tensed due to this. So I decided to re deploy the same application on another instance that I have. Worked completely fine
You want to change the wifi network to which is your embedded device connected?
- The native process is broken
- ESP is in the correct state, but refuse to communicate with anything
- Restore to default doesn't work
- Flashing default firmware doesn't help
- download the whole NodeJS/NPM
- compile two perl binaries
- bump into 2 year old bug, that your Intel wifi won't connect to the ESP SoftAP
- reinstall the Intel driver, just to find out it's still not fixed
- connect the external Atheros wifi adapter
- connect that shit back to the cloud
And just after little under 4 days of fiddling with GPIO pins it finally works and communicates.2
Developer vs non developer interview:
How well do you know excel ?
How would you write spreadsheet app, what if it was cross platforms mobile application but also desktop app ?
Do you know how to use windows?
Do you know kubernetes, distributed systems, lambdas, cloud services and how to deploy to server farm ?
You know how to use printer / fax and coffee machine ?
Do you have experience in writing code for embedded devices ?
Do you know powerpoint ?
React native and native apps maybe ?5
## Building my own router
Damn it! I've got to read more before making decisions :) I already do that, but I need yet *MORE* reading.
So I bought a miniPC which I'm planning to turn into a router. I wanted to install AX200 (wifi6) card in it but it could only see the bluetooth part of it (using btusb kernel module).
What I did NOT know about wifi cards and mPCIe slots
M2 is only a form-factor. It defines what the connector looks like. Over that connector multiple different protocols could be used. m2 (NGFF) WIFI cards are usually using PCIe proto. And USB.
My so-desired AX200 uses both PCIe and USB protocols: USB for BT and PCIe for the actual wifi.
https://ark.intel.com/content/www/.... The same spec applies to both: m2 and mPCIe card versions.
Now my mini PC has a mPCIe slot but the label on the board says "USB wifi". Which suggests that it only accepts the USB-related pins of mPCIe (as wiki says about mPCIe: "The host device supports both PCI Express and USB 2.0 connectivity, and each card may use either standard.").
So I guess that means I'm stuck with a useless mPCIe port :D shit..
Now my best bet is to wait for USB dongles supporting wifi6 and use usb AC adapters until then. Well... It's not an optimal outcome. But still IMO a better solution than an embedded router from the shelf!
(No, I'm not giving up and buying another used/new PC :) )
At last I can calm down and stop searching for magical pcie-to-usb adapters :) Phew... That's a relief!1
> Be me
> Programming for an embedded system
> It's not interruptable
> Got ISR Fault (Interrupt Service Register)
> Breakpoints are useless
> Comment out some lines
> Turns out it goes ISRF Infinite Loop because of the multi dimensional array of strings
> Use pointer intead of defining actual size
Today we had a cryptolocker running through our file servers. The locker came from a mailicious e-mail from a strange address. The email contained a strange pdf file with an embedded docm file. 6 people out of a workplace of 80 opened that file. These people...5
Anyone here worked a whole lot with low level programming?
I have always worked with high level languages like Python and C++, but I’ve also had an interest in working with embedded systems, real close to the metal.
Any directions on where I should go to start learning low level programming? Sites, languages, etc?
Appreciated devRant fam!😊14
I have a pretty successful project on github
Which I don't think is necessarily my best achievement but all the stuff I do at work is not open
I used the project as a way to learn bash scripting and it kinda caught on.
Sadly I'm not a sys admin or anything I'm more of hardware/embedded engineer but it's still cool to have one of my projects being so used. And I got to learn a little of bash along the way 😁 I now feel super comfortable in a terminal and reading man pages to figure things our which was a skill i lacked previously. I definitely learn better by doing and fixing mistakes along the way
So today (as of 5 min ago) marks a great day for my personal projects! I just got my embedded systems Flash memory driver debugging on my PC in Visual Studio, talking directly to the REAL flash chip, WITHOUT being tied to a embedded target! It's glorious. I can finally debug and write tons of tests without having to worry about the constraints of my embedded system. Ahhh. All the pieces I've needed to build this have slowly come together over weekends, and it feels so good to have this tool in my arsenal now! Great day indeed.
Here is a story about 5 years of my life.
My studies had little to do with web. I did embedded systems (architecture and software) but quickly realized that I couldn't see myself living my life in my homecoutry and that my degree would be worth little to no more than shit elsewhere in the world. That was on my 3rd year in uni.
I liked coding so I decided to pursue computer science, then web development. For that, your degree mattered little.
From then on, when I wasn't in class I was doing some coding.
This allowed me to get short (2 months) internships in Mobile and web development, 4 in total.
Doing so I had made it so that my professors would allow me to do my graduation project in web and mobile dev. That project having ended, I secured a long (1year and a half) internship in Mumbai India doing web for a big consulting company. Having finished that I headed to Belgium for my current job. All with having no to little financial resources except what I could come up with.
"I'm proud of all the efforts it took to make it" is what I think sometimes but what is it that I made? I realized my first objective which is to be on the international job market, but now that I genuinely love software I realize that I didn't really make anything I can be proud of working as a consultant. And having worked on many things but not a lot on practically anything, it's getting hard to do something else.
I'm hoping for devranters insight on how I should proceed.1
Project Manager: "C++ has become much better for embedded now so we're gonna use it in the new project."
Me: "I didn't C that coming."
I know it's silly but I'm proud of it 🤓
Now that I have your attention. My problem is with "IAR embedded workbench", not so much with windows but I'll get to that.
I've used that IDE for a few years.. 2 years ago. Since then I apparently forgot how to even create a project from scratch with adding all the necessary libraries and all that.
My initial deal with a client was to give them a solution using whatever tools I deem necessary. As I recently moved to linux and IAR is not available for that os.. and I also enjoyed working with CLion and PyCharm which Are available I decide to use CLion to write my C project.
A problem was that to compile code for microcontrollers I need tools unsupported by CLion.. oh well. I can do all the compilation and uploading of the code through terminal .. so I make a bash script that does it all. Super convenient. Development is going well and all.. until they ask me for the project.
I sent them the project so that they can see my progress. They can't do shit with what I gave them because they don't even have make on their machines let alone the compiler. All they have is IAR. But the guy that wants to see the code is not really a programmer.. he is a hardware specialist so I can't expect him to do anything more than use what he knows. He doesn't need or want to learn more right now.
So I go to windows and start porting my code to an IAR project and 2 days later I am still stuck with it. FUCK. Not only was the installation process horrible but the tools I wanted to install additionally did not work as promised either.
I know it took me about 2 days to setup all I needed on linux but I was enjoying it every step of the way. While this garbage is frustrating me so much. The fact that I used to do it before adds to the pain.
I am this close to telling them to just look at my code in notepad and I can setup a vm for them in which they can compile it if they really really need to.
If they just told me from the very start that they want me to work with IAR that would have been fine. I would have never seen the easier way and would have gladly figure it out then. Not now.1
I give software support to Rugged handhelds in a company and everyday some IT support moron comes to me with a crazy request. The day just started and...
IT Tech: "Hello, C, can you improve the touchscreen sensibility? It's not so responsive and sometimes we have to click more than one time to something work"
Me: "That's ok, the rugged ones that you have are very old, besides they have resistive screen, so your fingers won't do a good job"
IT Tech: "THERE'S NO WAY TO FIX IT? I guess I'll open a ticket for you to study more calmly about the issue"
Me: "If it's not a software thing, I can't do that, I don't have hardware skills, I guess you'll have to call our provider about that, but, before you do something, try to recalibrate your handhelds, the majority of the users don't do that at the system's start and the touch experience really can become a mess"
IT Tech: "Hmmm, I'll try that, otherwise I'll back to you, thanks!"
I am open to suggestions of a magic batch file/ .NET CF 2.0 software that will turn their handhelds into a Galaxy S6 touch experience. THANKS!1
Another chapter of my nano-drone love-hate story. Deployment using the old pipeline, but with new augmentations. Next week hopefully, we will deploy a better version with the new pipeline :)
Website for a gallery that wanted a 10k website for just 1k ... Must haz super CMS so that they could send me word documents each week so I could manuallly copy paste that shit into the CMS, and somehow extract and restore the lowres embedded images in full resolution ...
I guess it was safe to say this was my first client from hell 😅😂😂😂
The second was a website for some ballroom dude that got my referral from gallery X ... Yup, same shitty type of client4
Did I really go to university, have object oriented programming taught to me from scratch and embedded in me as best practice, work with OO frameworks for 3 years and become a damn good web dev just to use Drupal?7
I have a random question. Does it make me a less of a developer if I say no to a embedded side project proposed by a friend?
I mean I'm all into side projects n building something cool but hardware and embedded stuff isn't something I like or feel passionate about.3
I really hate when I have to work on something wrong. I mean, the client wants to embedded a third party service on their website, using iframe. Then, they want us to change the layout and behavior of the embedded page. And well, no matter what, I have to do what they want. Great job.1
Today is just me and my friend, two embedded systems geeks making a website.
It’s going awful but it’s fun as hell😂4
Good News: WordPress has decided to update its embedded jQuery version to the latest as of Version 5.0
Bad News: Decided to look up what else to expect with that update, find out the Gutenberg editor is on its way to replace the TinyMCE editor, and will be sweeping meta boxes away along with it...3
I set up an issue tracker for a software I'm developing for a company. Sent them an invitation to that tracker, stating that I hope to keep discussions more concise and clear that way (they're all HW/Embedded Devs)
The good news is: they've taken to the tracker quite well and are happily reporting issues and discussing them.
The bad news is: they're all sharing a single account.
It's been up for a day now and already no one knows anymore who reported/commented what.
WHY, JUST WHY would you think it's a good idea to share an account between 5 people, maybe more, who knows? Creating one takes less than a minute and it's free ffs.2
Is there any hope of getting a job that isn't web related? Every embedded job I've seen requires years of experience. I just want to write C dammit.2
Does anyone know of any tools for deobfuscating a batch script?
I got one of those scam emails with a .doc file attached and wanted to pull it apart, embedded in that file is a VBA script that runs as soon as the document is open. I have figured out how the script works I just have no idea when it comes to the batch script that its running, any help would be appreciated.
heres a pastebin link with the script, https://pastebin.com/SDWnQc4814
Holy shit! I have not programmed a Teensy micro in a while. So I was looking at what they offer and saw they now have a 600Mhz version that is the same size/pinout as their 72MHz version. I am just amazed by how much micros have changed. I love the embedded wifi chips that are out there too. I guess I am going to be playing with the Teensy the next few weeks. I love playing around with embedded audio processing. Lately I have been playing with bluetooth wireless audio. So this will fit nicely. The chip has 2 AD and assorted digital audio inputs/outputs.
I dunno, I was excited and this seems like a nice new years present.3
You may soon have a new operating system from Google to run on your Raspberry Pi. Details are still extremely sparse, the only description on the GitHub page is “Pink + Purple == Fuchsia (a new Operating System)”. But, here’s what we do know:
The new OS, called Fuchsia, will be based on Magenta, which is in turn built on LittleKernel. That means that, surprisingly, Google will not be using a Linux kernel for the new OS but something more like an embedded RTOS. Although Google is targeting embedded systems, the possibility of being able to run it on a desktop has been mentioned, so it may not be too minimalistic.
Google’s Travis Geiselbrecht has named the Raspberry Pi 3 specifically as one system it will run on, and said that it’ll be available soon. But, it seems Google is aiming to make it run on a variety of ARM devices (both 32 bit and 64 bit), as well as 64 bit PCs. This is a direct effort to compete against other commercial embedded operating systems that are currently available, and especially on IoT devices.1
I'm new around here and I'm part of the niche of embedded software developer.
Is there any fellow MCU programmer around here?
Have a great night everyone!7
Reminder, include legal language in next project that says if we're using JIRA then we're using JIRA and not a thousand emails with requirements embedded in spreadsheets and PowerPoints.
First patch for buildroot submitted and added applied to master!! 😁
I had the impression that git (like, more than "git add ." was just too complicated and that making patches was some sort of dark magic using some obscure unix tools.
Well, it turns out that is actually pretty easy, fun and exhilarating!!
Looking forward to build up until I'm making contributions to the kernel! 🤓
Any electrical engineers/tech hackers here?
I am planning to do raspberry & arduino project, basically it’s TV ambilight, but with camera recording the tv screen. Now I have a lot of stuff figured out already, will use wide angle camera connected to raspberry (so I can use it very close to the tv), it’s gonna record screen at lowest resolution which should be enough to analyze colors through opencv and has quite high bitrate. Behind the tv will have led strips around with arduino hooked, which has wifi shield connected.
Now key here is to capture image, analyze it, build array of colors and send it to the arduino to change the colors of led and everything 60 times per second (fps to match tv).
Amount of data is 0.3kb with 100 24bit leds, which is incredibly low.
I am not entirely sure how wifi works internally, but will it be handle to transfer data 60x/s, where not the size is the problem but actually the amount of transfers done? I should also take into account all other appliances using the wifi (pc, philips hue, phone...).
Or will it be more reliable to hook led’s directly to raspberry through wire (which’s also a cheaper option)?7
I just had to quit a part time programming job because I couldn't do it. I'm not really sure how I feel, there were alot of factors.
I took an internship about a year back to do some embedded C. I kicked ass and developed a system that really solved alot of problems for the company and so people started giving me "the hard back shelf problems". Like those problems that are really valuable if someone can get it working but not so important that it blocks anything day to day. Totally fair work for an intern, that is both complex and interesting.
When school started I took a part time remote role working on one of these problems. Fast forward to now (few months of remote work at school); i can't handle the stress. If I devote more time to work I fail a test. If I ace a test my work duties go neglected. On top of that my boss misses scheduled calls with me left and right, I even reminded him everyday 3 days before hand once!!!
Naturally I started feeling like I should quit. I was no longer interested in the work from a pure academic view, and emotionally hated doing it. However, since I was a good performer this place offered to interview my little brother!! Fuck, so do I choose my happiness or my brothers. It feels evil to choose myself over my brother. My brother, he's just a freshman so I know his odds are very low of getting an internship this year are low. And the place I worked at had some weight in the name so I could seriously jump start my little bros career. I do know however that if I don't quit that I will fail school, and do it while being miserable.
And so I quite my first remote job, from my first internship. I feel happy about, but also like I let someone down (them?, Me?, BROTHER?).1
Much like traditional engineering I can see software engineering suddenly becoming very very regulated around the world. Different systems safety bodies will open up for things like embedded systems development where their is a risk of harm, mandatory security standards will be put in place etc.
Enjoy the cowboy days ladies/gents/others regulatory bodies are on their way!5
At work we develop for embedded systems. Using the heap can raise unknown effects sometimes. So we always try to avoid using it. To show our attitude regarding the heap we want to make T-Shirts like the No Ma'am shirts from Married... with Children but with No Heap instead of No Ma'am. Now we need a meaning of the acronym. Our currently idea is:
We do not find a good word for the E, we also aren't native speaker, thus we are not sure which synonym for word like based can be used in such context. So i want to ask if someone has a good idea or even a better idea for the whole acronym :)3
Soo question for the few embedded engineers on here. Do you guys use microchip’s, or NXP’s SDK for the hardware drivers? Or do you read the ref manual and build the HAL and PAL drivers per the need of the project for less code bloat and saving code space.
I and my coworkers always end up writing the drivers ourselves , so we have a better understanding of the specific hardware of the chip. Just trying to see if We’re the majority or the minority of embedded engineers.
Not really sure how many embedded folks are even on here.
And no not talking about RasPie, and arduino folks (no offense)8
Does everyone here either is a web related developer? It seems like embedded software developers are a rare kind in this place.1
Today at work I started doing 1 month old task with production problem.
First of all why now ?
Because I already fixed all the other urgent production problems I had during last month, done about 4 deployments of those super urgent errors.
Now I can start with not trivial one that are pending for quite time.
I am the only backend developer in this project ...
This is a dtp application and the problem is that we are not verifying if we got all fonts embedded in customer provided pdf files.
We are generating high quality images of those pdf for printing just fine from the beginning but now we need valid PDF with all fonts embedded in it. ( don’t ask me why I am only a hammer in this process )
After running simple test using python script against database it turned out we have over 500 broken PDF files without fonts.
So I guess I have just one sentence to say about it.
Fuck you PDF format for not being strict and allowing this shit.
Html5 vs Adobe flash. Html5 won
Html5 vs java Web embedded app. Html5 won
Therefore Html5 vs java 3 billion devices. Ans=?5
Just posted this in another thread, but i think you'll all like it too:
I once had a dev who was allowing his site elements to be embedded everywhere in the world (intentional) and it was vulnerable to clickjacking (not intentional). I told him to restrict frame origin and then implement a whitelist.
My man comes back a month later with this issue of someone in google sites not being able to embed the element. GOOGLE FUCKING SITES!!!!! I didnt even know that shit existed! So natually i go through all the extremely in depth and nuanced explanations first: we start looking at web traffic logs and find out that its not the google site name thats trying to access the element, but one of google's web crawler-type things. Whatever. Whitelist that url. Nothing.
Another weird thing was the way that google sites referenced the iframe was a copy of it stored in a google subsite???? Something like "googleusercontent.com" instead of the actual site we were referencing. Whatever. Whitelisted it. Nothing.
We even looked at other solutions like opening the whitelist completely for a span of time to test to see if we could get it to work without the whitelist, as the dev was convinced that the whitelist was the issue. It STILL didnt work!
Because of this development i got more frustrated because this wasnt tested beforehand, and finally asked the question: do other web template sites have this issue like squarespace or wix?
Nope. Just google sites.
We concluded its not an issue with the whitelist, but merely an issue with either google sites or the way the webapp is designed, but considering it works on LITERALLY ANYTHING ELSE i am unsure that the latter is the answer.2
The worst technology i had to deal with was probably a piece of hardware. It was a mini-pc combined with sensors and digital IOs and thus, it should have been able to do process control all by itself.
At that time, there was hardware that did that, but this one had an intel cpu, windows embedded and some powerful libraries pre-installed.
Sounds good, didn't work. The thing was so unstable and buggy and crashed on everything. The sensor part had lots of parameters and the right order was trial and error, documentation didn't match behavior, fixes promised but never delivered.
Lucky for us: it was just a demokit, no real project.
I still remember it with a smile. We got in contact to that company at a trade fair and they had most impressive booth. I also remember their companies image movie from their homepage with developers in dark labs with holographic monitors and the boss in his shiny bright office as he looked out of the window and quoted a famous german author.
Hilarious and sad. :-)2
I've been noticing that without any specialization development can become repetitive, as in, a bunch of fancy ways of doing the same CURD operations.
Something that just calls me is low level development, wether it is embedded development (microcontrollers and such) or Linux Kernel and device drivers. I've been polishing my C skills for a while now and started to look into kernel development and uff, is it overwhelming!
I just wanted to see if some of you guys are or had experience in system development and how you got there. Thx!3
>Working on code
>Shit works as intended first try, nice
>Goes to play strange bootleg Gameboy Color ROM sent by a friend
>ROM immediately fucking dies
>Pop emulator's debugger
we're executing from VRAM, stack's firmly embedded in ROM
>Add execution breakpoint to entrypoint of game, restart emulated system (because i'm actually using the legit bios i hacked so it allows null/corrupted games to run)
>Step through everything, everything goes well until all of a sudden we call a function and shit hits the goddamn fan
well we have the culprit
>step through subroutine
if <unused_byte_in_HRAM> != 0 then stackPointer+=32;tryAgain();else return
>Realize this is using a bootleg Memory Bank Controller with hard-backed encryption so none of the bytes executed or read as data are the right byte
>Find emulator that'll handle the jank MBC
>read code to try and figure out how it works
if checksumExtendedLogoBlob == some_number then set MBC_Bootleg1 else if checksumExtendedLogoBlob == some_other_number then set MBC_Bootleg2 else if...
>Spend 10 minutes finding the right bootleg MBC
>code shows 8 possible tables for real bit order based on some value in the cart header
>look for code that gets this value
>not in the header
>not in ANY header in this 1000+ file emulator
>not in any related cpp files???
>"Delivery failed: email doesn't exist"
fuck me i guess2
Now that I've spent a few ineffectual hours too many trying to get it working, I'm starting to think VS Code wasn't built for the purposes I wanted to use it for. I still can't get breakpoints working anywhere close to reliably. And I'd say breakpoints are pretty important.
On a related note, if anyone here has used VS Code together with arm-none-eabi-gdb, I'd love some pointers. I've yet to find any traces on the web of people doing that…3
More network/hardware than dev but anyway: I use OPNsense as a firewall at home on an embedded system. Had everything set up nicely and appearing to be working fine, quite a lot of things set up (static leases, VLANs with various firewall rules etc. - a fair bit of stuff involved). I noticed my remote system was failing to back up to my local one. Turned out port forwarding wasn't fully working (initial packet got through but nothing else). I noticed this at midnight.
Ran an update to see if that helped - nope. Reboot time then! It made its shutdown noises and I waited 15 minutes before giving up (no noises, no ping response). Took SD card out. Copied a fresh install onto it, thus wiping all settings. Booted up fine, set up my internet connection, all good. Proceeded to configure it. Noticed I couldn't access the internet from my PC, but could from the firewall itself. Rebooted the firewall. It didn't come back up. Argh!
Reinstalled AGAIN. Attached a serial cable and it was complaining about something which sounded like it couldn't read the SD card. Tried another. Nope. Looked online (using phone): known issue to do with boot delays.
Gave up and went to bed at this point (4am).
Next day: Installed it in a VM instead. Still no internet from my PC! Another known issue to do with default gateway not being the PPPoE interface. Got into shell, manually changed the default route. Was then able to update to the latest version which fixes the gateway issue. Rebooted the VM. All good.
Put all my settings back in, this time taking a backup afterward.
Only to discover....
....port forwarding wasn't working properly. Back to square 1.
Poked around with some NAT settings (outbound ones), made no difference, undid those changes and suddenly it started working.
WTF? /waves arms in the air
OPNsense folk were very helpful, producing a new build for me to try within a couple of hours of me asking about the problem.
But days like that, I start to question whether I really enjoy technology as much as I thought I did...
I’ve been on devRant for a very short period of time and I’ve seen too many posts about PHP fucking people in the ass.
Is it really that bad?(I’m an embedded systems geek so don’t ask me why I don’t know anything about PHP)18
I fucking hate environnement configuration so much that I prefer to debug 8 hours straight rather than lose my time and shit for 2 hours on idiotic configuration problems and jump from page to page like a dumbass
"Hey you want that module, download it here !"
"Oopsie, starting from X version of the JDK/JRE this is no longer standalone and directly embedded in"
"Can't find it ? Well I just forgot to tell you that starting from Y version this is COMPLETELY removed from what I just told you to search in and now in another standalone package"
"So now you added your package as dependency for you project, your IDE detects everything well but can't run your code ? That's because it doesn't work anyway, use another method found on the dedicated Github issue which makes little sense and that you have to apply everytime, then sacrifice your inexistent newborn to connect to the 9th circle of hell where Java resides so everything will work"
I knew I couldn't get away using fucking Java and JavaFX3
Debugging is not about process, it's about end.
(I just finished two week long debugging session - approx 5 hours a day. It was nasty bug appearing only with optimalizations in embedded C, you can imagine joy when it came to life tonight. So now I am resting at pub with glass of cider knowing I am loosing needed sleep but I simply do not care right now. Sweet careless.)2
I gotta say I really love the beauty of being able to merge math, code, and hardware all in a well tuned symphony to make something awesome. Building an LQR controller for a custom quadrotor flight controller and it is just so much fun!
Side job - some consulting.
First and foremost, students should be carefully taught the logic and mentality behind programming. Most of the time I see that the introductory programming courses waste so much energy in teaching the language itself. So students kinda just get fucked cause many people end up ending the course without having actually gained the "programming perspective".
Stop teaching pointers and lambdas and even leave the object oriented stiff till later. If a student doesn't know why we use a For loop then how can they learn anything else.
I believe once that thing in your brain clicks about programming, everything goes smooth from there... kinda :P
Second of all, and this pertains mainly to the engineering and science disciplines.
We need a fundamental and strong mathematical foundation. And no I don't mean taking fucking double integrals. Teach us Linear Algebra, Graph theory, the properties of matrices, and Probability theory.
One of the things I suffered from most and regret in university is having a weak foundation in math and having to spend more time catching myself up to speed.
It's so annoying reading a paper on a new algorithm or method and feeling like an idiot because I can't understand what magic these people did.
Ok this is more deeper, maybe a 2nd year course.
But this is something we take for granted.
Computers don't magically add and subtract and multiply.
They fuck up.
And it'll bite you in the ass if you're not even aware that the computer we all love so much isn't as perfect as we think
Some hardware knowledge.
Probably a basic embedded systems course with arduinos
just so you can get a feel for how our beautiful software actually makes those electrons go weeeeeeeee
just give me the internet and some projects
Ill learn everything else
Projects are the best motivation
I hate this purely theoretical approach
where we memorize or read code and write these stupid exams
Test what we are capable off
make us do projects that take sleepless nights and litres of coffee
And judge our methods, documentation, team work, and output
Team work skills and tools (VCS, communicating, project management, etc.)
Documentation and Reporting
maybe even with LaTeX :D
Yeah that's the gist of whats on my mind at the moment regarding an ideal computer science education
At least the foundations
The rest I leave it to the next dude.
I started early making money with programming, but currently I'm still studying to get into embedded development. My dad is very jealous of me being a programmer. He's biting his ass for not learning programming himself in the early years of c64 and so. He was just fascinated by using a PC, his friends wrote little games. He mainly believes, that he would earn a lot more. (Haha, …)
My mom tho, she doesn't ask about my subject or what I do or will do in future. I think, she doesn't really care but knows I'm doing computer stuff.
The moment I realized im an actual dev:
I used to always copy/paste embed codes and not think of how they work. Embedded iframes, embedded video, embedded appointment forms.
One day, I'm given an embed link and I freakin knew what everything meant. I knew the HTML, I understood what the JS call was, and I saw how it communicated back to its site. It was super exciting to finally understand what I was copying/pasting... Like I finally opened my eyes and saw the real world.1
My company just released its website today. Previously, it just used its parent company's site.
Now, the problem is that it sucks big time. Awful design, pixelated stock photos, bad navigation, and broken grammar.
In the company's defence, it's not a web shop. It employs zero web devs. The site was built by an external company.
But if you are like me, you visit company websites before you apply for a job, and in this case, it would bed a big red flag.
Or maybe the hard-core embedded devs they are looking to employ wouldn't notice? Maybe they are all stuck in the year 2000 as well? I used to be a web developer so maybe my criteria are broken?3
So I went to a car repair center and asked if they could fix my bike. They said they could but they won't. This is outrageous, obviously a bike is less complicated than a car and they can actually fix it, they just won't because it's "not their job". Unbelievable!
//This didn't really happen of course
//people don't think this is acceptable, but if I won't fix their laptop they are surprised and act the same way. I study ICT (embedded software engineering and cyber security, but they don't understand that so ICT it is) so I HAVE to fix their laptop....
//Non-techies should really learn that just because we can do something, we don't have to do what they ask of us11
I'm thinking of designing a programming language.
I want it to have easy to read syntax like python. Inheritance and interfaces like java. More advanced concepts like pointers and memory management like c++.
I was originally going to write my own compiler but I figured it's not worth reinventing the wheel. So the current plan is to basically just create a parser that turns a source file into c++ code and then that is compiled with g++. The only problem I can think of with that is catching runtime errors.
How does this language sound?
My purpose is to have a language that is as easy to read as python but with the speed of a compiled program and the ability to use it for embedded projects. I feel like reading larger C++ projects can be quite time consuming. So I figure the trade off of taking a little longer to write the code to make it more obvious what is going on is better than having a lot of syntax that can be tough to walk though the logic of (I find this often with c and c++, not like I don't figure it out but It definitely takes longer than it does to read and understand python)4
Work hard at improving my skills in embedded software and electrical engineering for sure!
Since it caught my interest half a year ago, I've read several books and articles on the topic, but never got to get my hands on the actual thing.
This will definitely be the year where I'll go nuts and learn all I can to prepare for my next internship, which I really want to be related to embedded software!
Whenever i get bored at work i try to motivate myself, because i notice that as soon as i am less interested, i loose focus and make mistakes.
Therefore i try to keep motivation up. One thing that helps is actually TDD, because you are able to have several small subgoals, which each leave you with a feeling of achievement, when a test you wrote passed, kinda like achievements in games.
When the task itself is so boring that even TDD doesn‘t help, i try to have fun while painfully working through it. Like have a coffee break every now and then or rant with a coworker about the task.
One time a coworker and me had to create a demo in Unity and we hated the task, because it was exactly this brainless and cumbersome clicking in the Unity3D UI which felt awful to us (we are embedded developers and we find comfort in the terminal 😄)
The only thing that got us through the task was ranting at Unity and periodically goofing around in the engine and adding weird behavior to objects.
Not much tops the orgasm from powering thru 500+ lines of code in the zone... in vim...no debugger.. and without compiling just visually seeing in your mind the assembly be generated... and code being stepped thru.. and then compile and test and everything works as expected.. not sure anything tops that feeling ... definitely have to be in the zone.. one distraction and boom gotta compile to make sure nothing broke3
How fitting because that just happened today: MOTHERF*CKING Tomcat.
Tomcat sucks with client side routing (e.g. in angular2).
How hard can it be to provide a web/application server which is properly configurable?
I lost a whole day by trying to get an angular2 project deployed in Tomcat.
But that's not enough.
There seems to be no way in Tomcat, short of writing to XML config files and including one jar library, to disable routing go a webapp. And you need to do this when you have a single page application with client side routing.
But yeah, dear boss, I get the part where Tomcat is lightweight, easy to use and does most of the work for you: when you do not use it.
As a side note, so that nobody thinks I have a grudge against the Apache guys: I see the advantages of a Tomcat if you have multiple webapplications written in Java which you need to manage our if you use it as an embedded application server.
But there are just some occasions where a plain old Apache Webserver is better suited.
Another side note: if I just embarrassed myself because those are settings which can be easily applied feel free to tell me 😉2
Oh god, structure alignement, why you do this... You might be interested if you do C/C++ but haven't tried passing structures as binary to other programs.
Just started working recently with a lib that's only a DLL and a header file that doesn't compile. So using python I was able to use the DLL and redefined all of the structures using ctypes, and the nice thing is: it works.
But I spent the whole afternoon debugging why the data in my structures was incoherent. After much cussing, I figured out that the DLL was compiled with 2 bytes packing...
Packing refers to how structures don't just have all the data placed next to each other in a buffer. Instead, the standard way a compiler will allocate memory for a structure is to ensure that for each field of the structure, the offset between the pointer to the structure and the one to the field in that structure is a multiple of either the size of the field, or the size of the processor's words. That means that typically, you'll find that in a structure containing a char and a long, allocated at pointer p, the double will be starting at p+4 instead of the p+1 you might assume.
With most compilers, on most architectures, you still have the option to force an other alignment for your structures. Well that was the case here, with a single pragma hidden in a sea of ifdefs... Man that took some time to debug...2
why the fuck is the fucking windows embedded kernel changing the utc time when changing the current daylight setting. its not supposed to change for fucks sake..per definition....its the local time that shall change...ridiculous..
My ideal dev job, would be a job I can show compassion towards. A team I can be proud of and learn from. And a vibrant workspace with likeminded individuals who just want to improve themselves even if they feel their at their pinnacle.
My current office tries to make use of new technologies, we've embedded docker, vagrant, a few ci systems on an in need basis per team, and a lot of other tools.
My only real qualms are they feel indifferent towards new languages and eco systems ( Node.js, GoLang, etc ). Our web team is still using angular.js 1.x, bower, refuses to look into webpack or a new framework for our front end which is currently being bogged down by angulars dirty checking.
Our RESTful services are all using flask and Python, which become increasingly slow with our increase in services. I've pushed for the use of Node or GoLang with a GraphQL interface but I'm shot down consistently by our principle engineers who believe everything and anything must be written in Python.
I could go on, but tldr; I'm 21 and I have a ton of aspirations for web development. I'd like to believe I'm well rounded for my age, especially without any formal education. I'd love to be surrounded by individuals who want the same, to learn and architect the greatest platforms and services possible.1
I haven't chimed in on this spaces vs tabs war at all on this platform, mostly because I personally don't care and adapt to my work's/project's conventions, but I just have to put this out there now.
I am honestly so confused about the entire thing since seeing a lot of recent rants on the topic. I was originally conditioned to believe that the majority of devs in the world were FOR spaces over tabs. Thus, whenever I start a project, I default to spaces.
Contrary to that, it seems most devs here (or at least those who enjoy instigating some banter) actually prefer tabs. Now, I recently binged Silicon Valley and can't help but wonder if people around here are simply jumping on that band wagon for the sake of the joke.
Side note: I also thought Vim was more widely used over Emacs but Richard Hendricks asserts otherwise there too.
I know the main arguments for both sides - spaces yield code that looks the same in all editors while tabs produce smaller code. Anybody who argues that spaces are less efficient because you need to physically press the space bar 2/4/8/etc times is just retarded. If soft tabs weren't a thing, I don't think anybody would be on the side of spaces and for that reason I believe that episode in Silicon Valley was just trying to be overdramatized and push peoples' buttons.
I'm actually interested to find out what kind of environments breed these opposing mindsets so what do you guys think?2
I've just started freelancing on PeoplePerHour. I'm in talks to secure a job migrating a C# webapp to a desktop scenario using HTML5 embedded within WPF, but I've never done this as a solo project before. What sort of price is sensible to charge for this? I'm working in GBP1
Definitely landing the first real gig.
I've been writing software since I was 12 (full disclosure: early code consisted of C=64 BASIC). I learned C in high school. Contributed to a MUD in my 20's. But I never got a CS degree and didn't really understand how hiring works, so I limped along doing technical support for years. Years turned into decades.
About 2 years ago, I became an embedded support person inside a development team. I got to show off my skills, and the year effectively became a live interview. Last October I finally got the title.
On the positive side, by taking the long way around I missed out on some of the insanity of the software world in the 90s/00s.2
I'm worried that this question will probably get downvoted on SO and I cannot post from my account as well, so here it is..
How to play youtube embedded video in mobile over a custom button / svg / image ?
One idea I'm currently working on is to trigger &autoplay=1 onclick but it is only appending that parameter to existing URL?
Please let me know if you have any thoughts, and I'm doing this for only mobile devices only
P.S I cannot use YouTube API11
I am a young dev trying my hands around in different stuff.
So I would appreciate any criticism or comments that would allow me to Learn more :) or good practices I can follow.
Here is one project where I tried to create a structured frameworkish way to write mqtt processors.
Mqtt processors are standalone apps that process mqtt requests that has to be acted upon (like add sensor data to db sent from sensor node, read from db, turn some gpio on or off if the app is on some embedded device like raspi ) etc.
This project creates a structure where you can just focus on writing subscribed topic listeners in a clean neat way. (Hopefully)6
Users complain about advertising and how it is annoying to have to see these ads just around the page while they just want to see the main content. So what do they do? They decide to use adblockers which start pushing web admins to find another method to make money. So half the time they offer the service for a lot more than normal which makes people not want to pay for it. So now I decide to push into the embedded crypto miners, which sadly cut in half my earnings but it’s so I can still make something and then people start to complain about this even though it doesn’t bother them in anyway
WHAT DO YOU PEOPLE WANT6
I’ve 2 great job opportunities and would like to get some opinions from you guys..
The first position is in my home country, I’ve passed the first interviews and (highly advanced) coding test.
I’d have the possibility to contribute to something big that really matters nowadays.
I would learn about lots of stuff that really interests me (security, embedded systems...)
The second position is in another country, I’ve passed the first interview and just received the coding test.
There I could work on a cool project and I’d definitely learn a lot there, too. But more important is that I love the county, there I really feel like “home”, I love the people and culture.
In case both of them want me, it would be really Hard to make my decision..
What would you do in my situation?
- dream job in a country I don’t necessarily like, neither dislike
- cool job in a country I totally wanna settle down sooner or later (but currently wouldn’t have problems getting the permissions and stuff..)?
Thanks in advance:)1
I recently bough a HifiBerry Pro DAC+ ADC for my raspberry pi.
That is when I remembered....
Linux is bad, but embedded Linux is worse.
I just wanted to connect via Bluetooth to a speaker and play sound through a microphone.
Unfortunately, after hours of configuring software, Bluetooth drivers and then testing python scripts with PyBluez, I still hate my life.
I guess the fancy new Linux GUIs (that compete with windows) really do not work correctly, because I swore the Bluetooth symbol was lit up in the top right.....
Ok story number 2, this one takes place back when I was at Uni.
We had a group project where we had to make a basic website. Nothing fancy, just basic HTML/CSS/JS.
We were a group of 3, one of the guys did a fairly good job with the CSS, he made a really good looking banner/footer and a kind of ‘featured’ page which looked awesome.
But the other guy... his contribution was the ‘contact us’ page, which consisted of a totally static table with dummy info and an embedded Google map showing the location of our fake car dealership.
After debugging my embedded code for five hours my teammate just sent me a message "I just commited the latest PCB". Well thanks, after looking at the new layout I got the initial code working by just changing one variable!
A lecturer for an Embedded Systems module who gave out drivers for an LCD display with no documentation at all, and about 4 functions for writing to the display and 3 initialisation functions, spent ages trying to actually decide what each function did by which memory addresses it was changing and how (made even better by the fact a good bit of the functions were written in Assembly since it was Embedded C)🙃
When I created my first app on RaspberryPi. It was an app that watches window sensors and shows the information about windows status (close or open) and shows the information on web application. Тhis was my first time when I faced with embedded development with Python.
Who is doing this to me *sobs*, mongoose or MongoDB? 😥😥
I'm adding new records (array) to an embedded document, but the first record to be added gets duplicated, even with the same ID and stuff :(..
Was using Callbacks, switched to promises, still the same.
Some context: our subject thesis is: "Benchmarking of IoT OS". We decided to narrow down the subject to a benchmarking of real-time OS. Examples of RTOS: Contiki, RIOT, ...
As there are no such papers on the subject out there, we are looking for some people/communities that could help us answer our questions.
Thank you for your time!1
I'm looking for advice on building a cross-platform java library for embedded devices, where I want the same framework for all devices, but some hardware is incompatible.
Should I make this thing multi-part, where the framework is the "core library" and hardware-specific parts are add-ons?3
I'm probably going to have to say IE. Microsoft pretended like they fixed everything, then removed conditional comments to "prove" it, except now you have to have five times as much code and eighteen different file formats just to get a stinking video embedded in a web page.
Welcome, Edge. Not a moment too soon.
Google decided to deprecate the ProgressDialog class in Android O (26). Now I have to deal with all those deprecation messages in Android Studio!
From the docs: "ProgressDialog is a modal dialog, which prevents the user from interacting with the app. Instead of using this class, you should use a progress indicator like ProgressBar, which can be embedded in your app's UI. Alternatively, you can use a notification to inform the user of the task's progress."
They also bugged the Toolbar! Nice.3
Hey remote workers.
What would be your advice for someone with experience that's interested in exploring remote work.
I'd like to target this question to remote workers that live outside USA/EU/UK. Say South America, South Asia.
A little introduction.
I'm a full stack engineer, did one project in embedded systems with QT/C++/RPI can do backend in Python, Node, Java, C#. I have some experience with React Native (just 2 apps)
I currently I do full stack with Node, React, postgres and caching with couchdb.
I gather requirements, write the projects, proposals and then I do the implementation. (Really full stack, I kinda like it though, when I'm bored with code I pick up an issue and contact the client to socialize/get answers. I found out that nondevs like to feel they talk to a human not a robot)
I'm making about 600usd/month (dev in a poor country) working 30hrs /week. I'd like to ramp up my income, working remote part time to fill up about 50hr week.
What can I expect?
Where do I start?
Are there part time opportunities for working remote?
What kind of roles are in demand?9
Pardon the rant; some of it can probably attributed to me, but please indulge me of you could.
Moral of the story: don't take the easy way out.
Fixed moral of the story: don't take the easy way out, unless you should.
So apparently changing the root password on my embedded linux system from the default to anything else breaks ssh. The only error i get is, that the password has "expired".
Dis is gonna take a long time to figure out, cuz no system logger and only serial access...2
So I ran into a perplexing "issue" today at work and I'm hoping some of you here have had experience with this. I got a story-time from my coworker about the early days of my company's product that I work on and heard about why I was running into so much code that appeared to be written hastily (cause it was). Turns out during the hardware bring-up phase, they were moving so fast they had to turn on all sorts of low level drivers and get them working in the system within a matter of days, just to keep up with the hardware team. Now keep in mind, these aren't "trivial" peripherals like a UART. Apparently the Ethernet driver had a grand total of a week to go from nothing to something communicating. Now, I'm a completely self-taught embedded systems focused software engineer and got to where I am simply cause I freaking love embedded systems. It's the best. BUT, the path I took involved focusing on quality over quantity, simply because I learned very quickly that if I did not take the time to think about what I was doing, I would screw myself over. My entire motto in life is something to the effect of "If I'm going to do it, I'm going to do it to the best of my abilities." As such, I tend to be one of the more forward thinking engineers on my team despite relative to my very small amount of professional experience (essentially I screwed myself over on my projects waaaay too often in the past years and learned from it). But what I learned today slightly terrifies me and took me aback. I know full well that there is going to come a point in my career where I do not have the time to produce quality code and really think about what I am designing....and yet it STILL has to work. I'm even in the aerospace field where safety is critical! I had not even considered that to be a possibility. Ideally I would like to prepare now so that I can be effective when that time does come...Have any of you been on the other side of this? What was it like? How can I grow now to be better prepared and provide value to my company when those situations come about? I know this is going to be extremely uncomfortable for me, but c'est la vie.
TLDR: I'm personally driven to produce quality code, but heard a horror story today about having to produce tons of safety-critical code in a short time without time for design. Ensue existential crisis. Help! Suggestions for growth?!
Edit: Just so I'm clear, the code base is good. We do extensive testing (for lots of reasons), but it just wasn't up to my "personal standards".2
Anyone here who had used powerbi embedded with nodejs backend? Please I need help. Can't take this shit anymore
Today at work, I had to do a dry run of our new production environment config for our VM server.
So I setup ESXi in a vm in my workstation. Installed it it, no problem. Setup some VMs, still going good. Then my supervisor came and said I have to make some tweaks and use vCenter. I thought: meh, that came late but ok. Download the vCenter installer from our internal CDN and ran it. Sorry general config, blah blah blah. "Setup with embedded or external platform service controller?" -"Embedded" - "minimal requirements: 11GB ram, 250GB disk storage, 2 CPU cores". Well... Fuck me. My workstation specs: 8 GB RAM, 128 GB SSD, 4 cores.
What the bloody fucking hell does this stuff need 250 GB disk space for?!
Well at least I've got a permanent upgrade for my workstation.1
Vent-rant. Fuck Wordpress and PHP and overly limiting css frameworks in their greasy unstable fucking assholes. I find embedded and / or game-dev C++ waaaaay more fun and pleasant, and logical than this fucking pile of cuntfuckery. I think I'm gonna switch my job, hopefully there's some C/C++ companies in my area.1
TIL: Php embedded in an HTML file couldn't care less if it's commented out. Such an unsatisfying solution to a two days "Why do all my calls get executed twice slightly different" bug hunt. I'd have liked my initial theory of a haunted server much more...
1. Gaming, though I focus mostly on mainstream games and my all time favorite is deus ex series (second - TES).
2. Anime. Dragon ball was a huge part of my childhood, and today it’s still my favorite show next to one punch man.
3. Manga. I picked it up quite recently and it’s awesome, but it’s also expensive so I learned to enjoy it only while traveling. I am still reading my first one and it’s Tokyo Ghoul.
4. Embedded electronics. Again, I picked it up quite recently and really enjoying it, still working on my first project that I did with raspberry pi (iot led strip), also posted a story(rant) a while ago.
5. MTB cycling. While it’s not really that geeky, it’s my most favorite hobby I picked up last year June and since rode 1200km on mostly flats and also had my first 100km trip. This year I am planning to focus more on trails and expect learning more technical riding.3
Hello, I’m considering building a web framework.
My ideal features would be:
Customizable authentication system(considering using a jwt lib)
Embedded DB(bolt db)
ORM( writing my own)
REST api to DB (via code generator)
Code generator(generation of models and views via cli)
GUI to db(some admin dashboard)
CORS(web service right?)
Ease of development
Fast prototyping of small-medium web services.
My question is, do i have to many things on my platter? Should i narrow it down into less featured framework? What feature should I focus on? How should i benchmark it? Should i write tests for absolutely everything or just for exported methods? What should i take into consideration when developing ORM API, Auth API...
The language is Go
Thank you for your input10
I wish to learn embedded systems and programming . Are there any online courses and mobile apps,? I'm a beginner.9
Programming embedded systems from scratch. All hardware, memory, timers, peripherals, etc, must be set up correctly at startup, and if you set even one single bit incorrect in any of the sometimes hundreds of 32- or 64-bit configuration registers, you are screwed. There is often no terminal that prints error messages to help you, but if you are lucky you have an (often very expensive) hardware in-circuit debugger to step through the start up code.2
Embedded Qt project. Has to ship in a week. Has problems with touch events.
Trace it to a problem in Qt itself.
Bugtracker: "Fix version: Qt 5.8"
5.8 is currently alpha.
I love to tinker with electronics and different embedded boards. For some guys its like I'm hacking government or something. Why everything is always about hacking with people?2
When you eventually get a 10yr old hardware to talk with the new pc104 stack!
Has to be the most complex set up I have ever seen!
Only taken me a month to understand what was needed from mutex's to knowing the address registry to read from...
To then only find out it's only a small cog in a much bigger system 😢2
We are currently debugging the most ridiculous issue. We have an eForm embedded in a native iOS app, and in the iOS 11 beta, every time we tap a dropdown list it takes 4 taps to dismiss it because it keeps reappearing. The final time it reappears with no data in it. The dropdowns are generated by Safari. We have replaced the Safari native dropdowns with a custom view and now the issue doesn't occur. What the hell Apple? What change did you make to Safari to cause such a random issue in a web view?
"Language is the amber in which a thousand precious and subtle thoughts have been safely embedded and preserved. " - Richard C. Trench
The other day I was debugging an internal app we have which is used to develop screens for an embedded device and noticed a function which enumerated the widgets on a particular screen. One would think this would be a simple task of having a local variable to keep count, assign the widgets a number, index itself, and continue. But no. The previous (and no longer employed) developer for some awful reason, created a TStringList, got the name of the widget, added it to the stringlist, used the result of the add function which returned the index, and used that result to assign widgets their index. All while creating the object and freeing it within the same function. WTF.2
It seems to be the new trend : building "boxes" based on raspberry pi, including sensors to mesure any sort of thing, and sending data to a REST API.
Was contacted for a project like this, to make the backend for the project.
I ask to the client the credentials of the dev who will makes the embedded dev, to know the format of data I will receive and send to the "box", the client respond that "I don't need to know that", and, besides, they don't have any dev for this post for now, but I can begin the dev for the backend without that, not knowing data structure, and will receive all of that for half December, for a deadline in early January.
Tell the client that his project will never be done in the deadline, got ejected from the project, client is pretty sure he will find à dev who will do all the work in 2 weeks.
Fuckin' startup culture.1
TLDR, need suggestions for a small team, ALM, or at least Requirements, Issue and test case tracking.
Okay my team needs some advice.
Soo the powers at be a year ago or so decided to move our requirement tracking process, test case and issue tracking from word, excel and Visio. To an ALM.. they choice Siemens Polarion for whatever reason assuming because of team center some divisions use it..
Ohhh and by the way we’ve been all engineering shit perfectly fine with the process we had with word, excel and Visio.. it wasn’t any extra work, because we needed to make those documents regardless, and it’s far easier to write the shit in the raw format than fuck around with the Mouse and all the config fields on some web app.
ANYWAY before anyone asks or suggests a process to match the tool, here’s some back ground info. We are a team of about 10-15. Split between mech, elec, and software with more on mech or elec side.
But regardless, for each project there is only 1 engineer of each concentration working on the project. So one mech, one elec and one software per project/product. Which doesn’t seem like a lot but it works out perfectly actually. (Although that might be a surprise for the most of you)..
ANYWAY... it’s kinda self managed, we have a manger that that directs the project and what features when, during development and pre release.
The issue is we hired a guy for requirements/ Polarion secretary (DevOps) claims to be the expert.. Polarion is taking too long too slow and too much config....
We want to switch, but don’t know what to. We don’t wanna create more work for us. We do peer reviews across the entire team. I think we are Sudo agile /scrum but not structured.
I like jira but it’s not great for true requirements... we get PDFs from oems and converting to word for any ALM sucks.. we use helix QAC for Misra compliance so part of me wants to use helix ALM... Polarion does not support us unless we pay thousands for “support package” I just don’t see the value added. Especially when our “DevOps” secretary is sub par.. plus I don’t believe in DevOps.. no value added for someone who can’t engineer only sudo direct. Hell we almost wanna use our interns for requirements tracking/ record keeping. We as the engineers know what todo and have been doing shit the old way for decades without issues...
Need suggestions for small team per project.. 1softwar 1elec 1mech... but large team over all across many projects.
Sorry for the long rant.. at the bar .. kinda drunk ranting tbh but do need opinions...
Last Friday, owner goes to client location to take part in a demo. Dev supervisor is gone for the day for daughter's graduation so they leave me in charge of application (which I wrote anyways) and in charge of embedded software developer. The 2 of us work hard to make sure all parts work flawlessy. Demo goes great and owner is very happy because company looked great in front of client.
Owner calls dev supervisor, again who was on vacation for entire demo, and congratulates him for a job well done.
Just started my new college education (going for embedded systems engineering) and we found out we don't have any holidays except for christmas.
No biggie, can live with that.
However, we just got a project which we need to pass to continue to the second year and of course it's a fucking group project.
Guess what, one of the asshats had a holiday planned for a while, so he'll be out somewhere in Africa while the rest build stuff for a week. 1 week on a 3 week project... Amazing.
Give A.I ability to have emotions...once they are embedded with human error wait for sometime ...
Months later A.I's are ranting about how humans are taking their jobs..
Saturday morning, trying to set up an automated testing environment on my own since at the workplace it's not considered something useful and time should be spent on other stuff. Yay.
Been there another couple of times, both times failed due to poor, overcomplicated architecture that makes use of DI in the very places it shouldn't (and vice versa)... but then I finally found where the DB access is configured and thought "well, let's try tomorrow to automate this bitch".
...turns out, the db access object is injected indeed, but... from a static, deeply nested configuration file, that's referenced EVERYWHERE and embedded in the project core dll.
So basically I can't use a mock DB without changing it in the original config and recompiling the actual project I'm testing, not the test project itself. WTF?!
Or maybe I'm missing something... god, I hope it's me missing something here.
I hope so much to be wrong...1
Back when rickrolling had hit critical mass - we decided to play a trick on a very fussy project manager. Long story short we embedded a very important message from the CEO of the company on a staging site. Said project manager was taken aback when Rick Astley took over the video.
I did some cool projects with node JS.
We had this project where we had several embedded sensor box components communicating via a node js server backend with some fancy visualization.
And one of the guys was a total idiot. His part was to write some embedded code for a sensor box. He also wrote some data receiver in C# which was a totally over patterned mess and nothing worked.
For some unknown reason this guy made me his arch nemesis. He also never liked the team. While the rest of the team actually was super cool.
So in the final presentation out of a sudden in his part of the presentation (He had a Mac and had his slides done in some nasty whatever incompatible format) he pulled out some slides with code metrics. The best part was where he compared the embedded C code with my js code in terms of cyclomatic complexity. I will never forget this moment. Some nice bar chart.
Good I loved that guy for this moment.
And that made my year!
So this embedded product is already a year late as cutting a task from the schedule didn't make the problems it would have addressed go away.
Now there's a performance issue (turns out to be how the customer had configured something) after we've been stumped for over a month and not got any closer, theres a meeting with the design authority, project manager, systems engineers etc, we say we can't tell where the issue is exactly, can't easily tell what Linux is doing all the time etc etc, so this product does a lot of IP processing, the project manager asks - do we even need an OS?
Are you having a laugh?! We barely took him serious before this meeting, we still don't now and it was three years ago! I mean, who wants to write their own OS and associated infrastructure themselves? 1 year late already, think you can add another 20 man years onto that!
So I was working on Nex Robotics's Firebird V,
Was doing some graph traversal thing...
And was breaking my head for 28hrs... I was passing the bot an structure of direction and no. Of times it had to take that direction...
something like for(int i=0; i<dir.times;i++)
And after 29 hrs I realized it also had negative values...
that effing abs() was missing 😫4
Lua handles arrays and maps/dictionaries essentially the same way. Makes for a pain when binding to cpp. Shame in an otherwise awesome embedded lang
Group work in a 24hr hackathon goes through it's phases... It's completely rational to have a phase where you imagine a pen embedded between that useless *dev's* eyes right? Right?...1
Oh... I dont know what to pick...
So i will pick 3 projects from my 3 stages of my dev "carrier"
1.Right after i discovered programing and learned how ,if, while and similar structures worked. The launguage was object pascal with delphi 2007
That was a "safe" with a stupidly complicated lock (text inputs, sliders, ect) it opened a secret folder in the end.
2. It was a embedded code for a Atmega8 AVR, Atmel studio, pure C but without memory managment (i didnt even know that it even existed)
It was a Pip boy knockoff, 16x2 display and a small keyboard connected to the arduino like board that i made on a proto board.
It wasnt that much of a pipboy, it was more of a showoff of atmega8 internal systems, (ADC, timers, interrupts and such)
3.DataLab, after helping my friend with his master thesis, (we meet on discord long story, i was in high school) i decided that mathlab is shit and i created a visual scripting enviroment, launguage C# .net 4 (in the latest version)
I remade the whole program from scrach 1 time, significantly improving everything (code reuse, better algorithms, data processing, code redability and edge cases) I have learned good practises from everywhere. I learned how to use git.
DataLab project looks just like LabViev (i didnt notice that it even existed...), it is frozen now because of my mental status but im planning on using it on my CV when i will be looking for jobs on holidays. There are many things that i can improve in that program but ... first i have to fix myself.
Embedded software engineer here.
If you had to pick a data structure that will have to potentially hold thousands of entries, and that should be as fast as possible at lookups, what would be your first choice?15
I think it's just me.
Every time I build something I feel as if I completely mess it up. For example, after a few days of working on an Android app after school, I feel like It's already become a mess. Perhaps it is just my aversion to making thousands of classes for every little detail, because I feel as if it would slow down my app (even if it were a minor penalty), but it usually makes for a onStart() function with ~90 lines of code which just makes me feel bad on the inside (and also a bad developer, so I wouldn't dare ask money for an app I built). Either way, if I would add these calls to other functions my Fragment/Activity class would still be fat. Also, typing 'context: Context' or 'Context context' just seems awkward.
I also feel like most frameworks are just a mess. Take Qt, for example. Quite a community touting how great it is (I use KDE Plasma btw) and I'm sure it is. I've got an idea for a desktop app but just the idea of it using some sort of JS (yes, I'm talking about QML which I'm considering) gives me the shivers. I already don't like Electron, so the idea of having JS embedded in a desktop app just doesn't sound right to me. But again, maybe it's just me ¯\_(ツ)_/¯2
So when I started at my current company, I was the second developer in the company. My job is to handle the embedded development side of our product. The existing code base? Made in fucking China. All of the comments were in Chinese too. They had implemented Huffman compression incorrectly and AES CBC encryption incorrectly as well. It was seriously some of the worst code I've ever seen. I remember one gem I found:
Int header = *(*int) "MGIK";
Why those f***ers in Freescale was unable to keep architecture same across their product lines? Why has KL25Z completely different archtecture than KL28Z? Registers are renamed randomly, peripheries removed and added with different architecture... That naming is just happy coincidence not same line in their products...
This porting is gonna be fun.
TL;DR: Embedded software guy needs to create a multi-instance sandbox environment in Jenkins for testing and not sure what good solutions are out there. Looking for suggestions.
So at work, we have these really cool integration tests that validate our system for flight safety. What's not so cool is that due to factors outside of my control, each test has to be run serially and the entire test suite can take many many hours. This is mostly due to a hardware limitation (not enough physical NICs), but there are other SW factors as well.
What I would like to do is somehow be able to wrap up all the resources into a neat little package and then deploy that package into some kind of virtual environment that can be instantiated on a Jenkins job. The NIC issue would be replaced with a virtual one and *theoretically* I should be able to spawn as many instances of this virtual environment as my CPU and RAM can handle. In short, I want to pseudo parallelize our test suite and drive down our testing time. Somehow I would need to be able to control this entire thing from a script of some sort.
Does anyone know of something out there that would satisfy these kinds of requirements? Double internet points if it's open source.
tldr: I am looking for recommendations for a basic website for my parents. GOTO question;
My parents have a small (offline) business. They have a website to give some general information and list their weekly offers.
When I felt that what has come out of the website-building tool (you know, clicky clicky stuff) looked a bit too early 2000's and is a total ripoff for what you get (almost 20€ per month), I created something with Google Sites for them. Feel free to roast me, but web development is not my field and now it looks much more modern, is mobile friendly and does what it is supposed to do. Weekly offers are edited in a google sheets file, which is embedded in the website. Not great, but this way my mom doesn't have to deal with editing a tables on the page - trust me, it won't look good. This also meant they could downgrade the hosting package to discard the clicky-tool and just the domain (maybe 1€ per month). The website itself is hosted for free by Google.
Now to the question:
Can you recommend a good alternative to the current solution (Google Sites)?
It should be cheap (<3€/month incl. domain) and my parents should be able to make some basic changes (just text in predefined locations). I am not afraid to get my hands dirty - I can deal with some HTML, CSS, JS - but I don't want to sink a lot of time into this. No need for analytics or the like. Maybe a newsletter would be cool (with the weekly offers), but that's just a random thought of mine and definitely not necessary.
Thanks for reading :)22
We have a C++ for embedded systems training at work this week.
References are a good thing but after looking for the reason why one object has no reference to the other for half of an hour just to realise that my member wasn't a reference so that i got an copy gave me the urge to use pointers instead. But unfortunately we'd to use a reference in this simple exercise which cost me a lot of time because that damn reference.2
"[...] Good Programming is a few brief moments of sublime elegance embedded in months of niggling, exacting, precise trivialities. [...]"
I've heard all kinds of arguments for about how whiteboard coding interviews should be obsolete, and that they usually doesn't reflect how good you are as a developer. But I've been polishing my skills with data structures and algorithms for a few weeks (learning this stuff for the second time since years ago in college) and I get this feeling that I'm becoming a much better programmer by practicing these things. And having access to all these things in the "working memory" of my brain has made me now think of solutions I couldn't before. But then - it may be that right now I'm working on embedded systems so this efficiency matters much more, earlier while doing full stack web development I didn't care about these much except while playing with strings maybe. So it might be dependent on your niche. What do you guys think?3
I've always wondered how come in certain videos that have embedded subtitles, usually tv shows, they don't get detected by mobile players, but do on PC?3
So qq. I am trying to make a portable (low volume) web appliance with a Raspberry Pi...but it’s dog slow. It uses an embedded DB so I am assuming it is probably the SD card that is the bottle neck. Do you think an external drive would help?4
Job interviews finished! I just kept one at Rouen (embedded systems) , and now I'm waiting the answer for Nice (Cry Engine).
Gosh I want to live in Nice and be a game developer, that looks really fun. I mean I enjoyed the test x)
Let me hope a bit guys :p
Alright, what the fuck is embedded systems and how does it differ from regular programming? I am not getting jobs because I know the languages requested, but I don't know embedded systems. How do I learn it? Get a Raspberry pi?12
Should I apply to a job that I am clearly underqualified? For example, I learned a bit about embedded software as a hobby but job requires extensive experience. So the result is certain but can any good come from this interview?
More detail, I will be indirectly applying for the job through recruiter company. My CV and interview with recruiter was also honest about my experience. In fact, recruiter asks if I am interested.9
Writing an embedded webserver recycling code that is in use for a few years now. Can't get my ’getStatus.ssi’ working. Turns out ’statusTag’ cannot be used and for the last couple of years noone cared that the status field was empty.
That's the first time I did such a thing and it took me only one unpaid (!) day to debug that piece of crap thinking my idiotic predecessor delivered halfway working code.
Is verifying and communicating broken code really that hard?1
In the beginning I created a CLI script to manage some production tests of our embedded product. Then they wanted a GUI with a single textbox and button. Then they wanted a shortcut on the desktop to that GUI.
Now one guy I know in 'production' insists that I keep adding to the documentation for things outside the scope of the software and more towards what will be sent to other production workers. Some of which includes 'ensure the cables are plugged in'. He says that he and other production workers are dumb and need a bulletproof guide. Fair enough, I say...maybe get a brain also?1
There’s somewhat of a magical moment when you teach the interns how to turn their huge switch statement into a function Pinter branch table....
Eliminating shotgun surgery as the project advances and new features are added to a module.
Colleges definitely don’t teach students certain things... and when I end up teaching them... the excitement and ideas they come up with are always great.. and they always end up with a stronger understanding of things.
(Embedded company .. all software here is C or C++) yes we use the optimizer.... sometimes you gotta do seemingly complex things to improve readability and maintainability.
I had a conversation with a friend.
I : since most modern programming languages handle most of the algorithms like sorting algorithms for arrays / dictionary or finding shortest path algorithms for path location. Do you think it is still important to learn to algorithms and design since most modern programming languages handle those for you.
Friend : Nope, since it’s already available for you why should you care of how they works since they are already embedded in the programming language itself. If you are a computer scientist yes, you must learn those stuff, but if you are an IT graduate or a mere developer you dont need to learn those stuff. That’s why I am confuse in my college days why did we need to learn algorithm and design.
What is your opinion guys? Quite disappointed with his answer.4
Considering using a node.js based library for a simple interface on an embedded ARM system. I have zero experience with node.js. At the very least I will use this as a test rig outside of the embedded system.
How much space will a minimal node.js server take?
Note: If its in the gigs my guess is this will be too large for our system.10
Does anyone know about an embedded document store database for Go? Currently I'm using SQLite but now I want to implement more features for which I prefer a document store database.1
Is there a name for the equivalent of a full stack developer for embedded devices and/or bare metal PC?1
memcpy to fill a struct in an environment that should run on both big and little endian HW...
Yep that guy went on to project management. 😂
Infineon infineon infineon...
Your aurix tricore is amazing for all safet systems... On paper.
Your support is abysmal. Tried forums, support line to verify a demo that only seems to work sometimes.
I just wanted to get ethernet communication using the demo. But hey one week gone and no success....
And the code seems to behave differently for each run :| the debugger works only on global variables and no printf statements. But hey just make a lot of globals right? So little footprint available so not possible :-\
Hoped that some forum could confirm the demo so I knew I was just making a fuck up, but cannot get that verified...
Embedded programming not for me... :/
I'm trying to fins an application that can give me a ticker style news feed and pull prices off of poloniex.com. Poloniex does not natively provide an embedded RSS feed so that wouldn't work but I don't know what the other options.4
For fucks sake, why can't Microsoft switch to Lua or JS as an embedded language instead of VBA.
It bad enough working with their office-jank but having program in this butt-rape of a language takes the cake.8
I had implemented an interval that was added when the viewport was active, and removed when inactive. This was to lessen the amount of ajax requests being done.
Though the little radio player was embedded at places, and thus the pictures didn't change at times.
I had to remove the inactivation of that interval.
Okay soo I’m not a database guy.. I’m an embedded engineer but I’m helping one of my interns make a hardware tracking database... so we are tracking assembled products (dev samples).. but also tracking the pcbs within the product.. depending on the product it might have more than one pcb or contain other components to track.
The question is how would I set up the relationship in the tables, so depending on the say “type id” of the product it would link to a table full of feilds specfic to that “type”.. say the product is of type phone and has a pcb of this and a camera of that.. blah blah blah.... but say another product is of type “washing machine”.. which has no screen, it has a different pcb, but also has other things..
There would be a type table .. washing machine, phone, tv, camera, pcb, ecu.. etc.. but those type would need their own tables...
I guess the question is how to relate a field to different tables depending on the value of the field... is this portion all done thru query results and logic rather than pure data base schemas?
What would be the question in terms of database lingo to google search the answer lol2
Very well restrained this black friday - Only bought 1 thing that I'd been wanting for a while - as it was 30% off. I bought a Ledger Nano X for security's sake, and I must say it's a great upgrade compared with the ledger nano s, which has half of the screen height and no embedded battery
Did black friday empty your pockets?2
Fuck sake, had to change the cooling system on my desktop, figured out the new cooling is too big(Noctua) to fit the GPU back, change the HDMI output to the motherboard(my CPU is an APU) and black screen all the time :(
It's fucking normal that as soon as the old GPU is lacking the system is not capable to switch to the embedded one? Fuck me.10
When underscore.js is embedded so hard in your muscle memory that you use return to continue a for loop because you're used to _.each()
Embedded programmer here, recently my job is nothing but android, web shit and webservices (no offense). i guess it's time to find a new job.
Through out the week I break my head on embedded systems...
And fuck my brains out playing DotA2 on sea server with pinoys on weekends...
When you lost almost three hours to get an unsupported version of the qmk firmware (for mechanical keyboards) compiled, but got chickened out of installing it for fear it would break the only keyboard you have ($100+ and a bitch to get shipped in the country)
I had to make a ruler grid for an existing horizontal scroll website project, but I had the job basically for sure.
I came up with a solution which included PHP-generated SVG embedded in HTML.
It was a new thing to me at that time, but a cool challenge.
Had to do a presentation today about os hardening on embedded devices and wanted to do a quick demo.
Forgot to make a sacrifice to the demo-gods and had to pay for it, nothing worked and i was struggeling with networking issues throughout my presentation :/
Worked perfectly 10 minutes ago as i was preparing and perfectly fine afterwards as the presentation was over...
Feeling really down and frustrated right now
What are your experiences with the demo gods?
Any c++ embedded system programmers here.what kind of work do you do ,what are your daily tasks etc.and what boards do you use
I've been working on an extremely intermittent bug for the past week in my project that occurs during a stress testing between a PC based server and an embedded device that share files. When the crash happens, I analyze what happened by looking at a file as a result of an fwrite, look at a diff of it, look at the packets etc. For the past 3 days I had been lead to believe there was a bug in stdio.h's fwrite due to a file being written looking like it was truncated in the diff, but the packets telling a different story (X bytes sent to be written, on the result I report X bytes written). Today I noticed that there was either a bug or an issue in the diffing algorithm that led me to think my code was the issue. I spent 3 fucking days trying to figure why fwrite was truncating and lieing about its result when my diff tool was the culprit. FML.
I have to reimplement a couple of complicated OOXML parsers (docx, pptx, vsdx, etc). Actually, I’ve implemented them in Python ~5 years ago but now I have to improve them and add support for nested/embedded formats and some other stuff. As you could expect, none of the OOXML validators are valid themselves, so it's better to have an MS product installed locally, just to get reassured that everything works fine and the parser produces the format that's recognizable by M$.
So I’ve bought a key on eBay (yep, I’m not paying full price for this shit: release valid validators first, bitches; don't make me buy things I don't need). The key is valid, everything is fine. But no, you just cannot have a link to download this fucking installer, no-no-no-no. We won't give you a link until after you enter a key. FEEL DEPENDENT. OBEY.
But I digress. Here's their MANUAL about DOWNLOADING the INSTALLER:
So, what's wrong with it? Oh, just a minor misunderstanding. They always give you a link to download an exe-installer. Even if you use Safari.
Why everything is so fucked?2