#Codepath
Explore tagged Tumblr posts
occknow · 1 month ago
Text
Tumblr media
8 notes · View notes
lackhand · 4 months ago
Text
My Server Side Rendering thoughts
I'm tech advising my friends' startup and it's interesting. Out of our discussions, I had a thought I wanted to get down in ink.
Client Side Rendering sucks for small teams but is nearly impossible to escape in Standard Technologies^1.
^1: Cunningham's Law: "the best way to get the right answer on the internet is not to ask a question; it's to post the wrong answer"
Backend development is basically fine
Say that you are writing an internal tool website. In his case it's a sales-y CMS-y thing; an integrated wizard & search tool. Obviously there's a few domains there (the Requirements server! The Catalog & search product! the produced Proposals!) and there's a sane UML chart about how the layers interact. Cool.
You've picked a language like ts/js/go/py/php/kotlin for your backends based on skill availability, libraries, etc. You're done, right?
But!
Frontend dev still requires a completely different approach
Developing the frontend for this kind of sucks. You've written a sane set of microservices in your favorite backend technology, yes, but when it comes time to knit them together, you probably need to switch technologies. You're going to pick React (or equivalently Svelte, Vue; Solidjs, etc), because you want a Single Page Application website.
At WebScale(tm), this makes sense: nothing scales or is available like the users' own browsers for the interactivity parts of your app. But if you're optimizing for the simplicity and team size, I'm not sure you want to bring a completely second technology into this game.
Liveview writes the frontend for you ASTERISK! FOOTNOTE! SEE CIT!
My friend's background includes the Elixir/Phoenix/Liveview stack^2.
Liveview uses a persistent websocket between the client and server. The client sends browser events to the server across the socket. The server uses a react-like events-and-caching-and-reevaluating model to determine changes to state as a result. The server uses session state to maintain its own mirror of the browser's DOM, and then streams the differences to the frontend, where the standard clientside javascript library applies them, and the cycle continues.
^2: 15 bits entropy remain
Chris McCord on how and why Liveview is, c. 2021.
Ok, so...? How does this help the solo dev?
At this phase, separation of concerns is overrated and you're probably not doing it right anyway.
You're a small-team multi-hat dev. You are building this app by the seat of your pants; you are not sure the UI you're building is the right UI yet.
So if you do normal React stuff, the flow of data is something like:
... → [Raw Database Schema] → [Internal Business Object in e.g. python] → [Display-oriented GET API in python on server] → [Serialize JSON] → [React render in typescript on browser] → [React produces final DOM changes on browser]
Those "display oriented API"/Serialize/"react HTML" lines are really suspicious at this point. Even though you've modeled your business objects correctly, every change to the interaction model requires synchronized FE and BE changes.
This is more than a protocol problem: something like protobufs or tRPC or whatever let you better describe how the interface is changing, but you'll still need to consume/produce new data, FE & BE changes.
So it lets you instead write:
... → [Raw Database Schema] → [Internal Business Object in elixir] → [Server rendering in elixir & HEEx on server] → [Serialize LV updates] → [LV FE lib renders on browser]
Bennies
By regarding the produced DOM mirror as a server API, you can feel ok about writing custom display queries and privileged business model access in your backend code. It means you're not using your RESTful GET endpoints in this codepath, but it also means you're not spitting out that boilerplate with only one current caller that will never have a second caller...
By sending browser events to the server's mirror of the DOM, you don't need to dip into the browser behavior; you can write server code that responds to the user's semantic actions. One can go too far; probably most confirm modals etc should get maintained & triggered clientside, but liveviewers usually take the serverside loop.
This websocket is critical for scoping changes, because e.g. a form post down in the guts of the page might cause changes at distant locations in the DOM (a nested delete button deleting an element from a list?) and the client's browser needs to be told to do the refresh of those elements (the list and any changed elements and a parent object with an element count and...?). That didn't use server generated events, but those could exist too ofc.
How does Elixir keep getting away with it?!
The pat answer for how Liveview does this -- including Chris McCord's article -- is the Blazingly! Efficient! Nature! of the BEAM! VM! (everything is green threads; cluster routing of method calls and replication of state; resumption of failed units of computation, etc etc).
I'm incredibly suspicious of this.
Sure, BEAM solves these problems for the developer, but so does a redis instance (or just the DB you were using anyway! Postgres is no joke!) + frameworks. Lots of apps use session state and use adapters to store that state durably with the end dev not needing to get into the weeds about how. Library authors could do this. It might be easier or harder for a given library author to deliver this in a given language, but there are some very skilled library authors out there.
You, developer, do not yet have as many users as you hope. DevOps has deployment practices that BEAM does not fit into. BEAM's enormous multiplexing is not saving you more than just turning up a few more servers would. You would be writing in go or in c++ if you meant it.
So:
Why isn't there already a popular equivalent of LV in js/ts/py/php/kotlin/etc?
TL;DR: LiveviewJS seems like the closest/most complete option as I understand it.
There are other equivalents ofc. But they have nowhere near the same level of use, despite being in languages that are OoM more in-use.
Candidates include turbo, django unicorn, unpoly, React Server Components... But none are really right afaict!
I can kind of guess why they're not as popular, which is that if you do not need to tie up server assets on a per-client basis, you will not choose to tie up server assets on a per-client basis. Websocket state, client DOM mirrors, etc; it adds up.
If you're building a chat app or video app, obviously devoting a stateful local socket-per-client is a good tradeoff. But I feel like there are lots of models that are similar! Including the one my friend is facing, modifying a document with a lot of spooky action at a distance.
What's missing? The last mile(s)
We have the technology to render any given slice of the page on the server. But AFAIK there's no diff behavior or anything so it'll render the entire subtree. You can choose whether to ship back DOM updates or fully rendered HTML; it doesn't make much of a difference to my point IMO.
Using something like htmx, you could have a frontend form post cause a subtree of the DOM to get re-rendered on the backend and patched back into the document.
That's "fine" so far as it goes, but if (in general) a form post changes components at a distance and you're trying to avoid writing custom frontend-y code for this, you're going to need to target some fairly root component with the changed htmx and include a lot of redundancy -- a SPA that does a refresh of the whole business model.
Why aren't more people talking about this?
The pieces of architecture feel like things we've all had available for a while: websockets, servers that handle requests and websockets, session state, DOM diffing, DOM patching.
How did Elixir get there first (Chris McCord explains how he got there first, so that might just be the answer: spark of genius)? Why did nobody else follow? Is there just a blindingly obvious product out there that does it that I'm missing?
One thing I see is that the big difference is only around server pushed events. Remix/RSC gets us close enough if the browser is always in control. If it isn't, you gotta write your own notification mechanisms -- which you can do, but now you gotta do it, and they're definitely running on the client, and your product has taken on a whole notification pipeline thing.
0 notes
aitoolswhitehattoolbox · 6 months ago
Text
Operations Manager - Education non-profit
JOB OVERVIEW # CodePath Background CodePath is a non-profit that helps computer science university students prepare for software internships and full-time jobs after graduation. We do this by offering additional industry skills courses … Apply Now
0 notes
remotetrove · 2 years ago
Text
Senior Ruby Engineer at CodePath
CodePath is a national non-profit that is reprogramming higher education to create the most diverse generation of software engineers, CTOs, and founders. We deliver industry-vetted courses and career support centered on the needs of Black, Latino/a, Indigenous, and low-income students. Our students train with senior engineers, intern at top companies, and rise together to become the tech leaders…
Tumblr media
View On WordPress
0 notes
dulce-studies · 5 years ago
Text
Winter Studying Challenge
Tumblr media
12/11/20 Day 11: 11th December - What is a favourite family Christmas/holiday memory that has stuck with you through the years? Why? ❄️
A favorite family Christmas memory would honestly be when I got my first iPhone. Under the tree there was a small present and inside of this little box was a piece of paper that said “Congratulations, you won an iPhone!” It was really cute and then I later went to the store with my mum to pick out my new phone.
Day 10 Goals:
🔏Implement a search bar in the app
🔏Watch videos on how to implement search bar
Goals completed! For the search bar my teammate was actually able to implement in so I asked her to show me how she did it and her thought process after demo day. All of the videos and documentation that I read was not helpful at all! Well they were helpful, but didn’t help my solve my problem because it wasn’t just a search bar, but having to implement an API and a network request that worked in tandem with that search bar and the movie/show results.
Day 11 Goals:
🖋Finish code for MovieDetailsViewController
🖋Work on Demo Day presentation- share with group members
🖋Practice giving the presentation (via Zoom w/ screen share), write out a script to get my thoughts on paper
I’m also starting the 100 days of productivity and I think I’ll post those at night so I can talk abt what I did!
23 notes · View notes
emonnelson1234-blog-blog · 3 years ago
Video
tumblr
TA Position - CodePath Interview for step 2
0 notes
cyle · 3 years ago
Note
Hi Cyle. I just saw this on my dash:
Tumblr media
I know a lot of people asked for a way to not see which filtered tags a filtered post contains but I am sad that I can't see it because I have two different reasons for filtering: 1. things I don't want to see at all and 2. things I can see with a little bit of a warning at first.
So now it's unclear to me whether I should check out this blog tumblr suggested or not.
(Also, it is kinda funny (lighthearted!) that tumblr even suggest something that ends up being filtered. ^^' "Oh you're filtering this? Look, this might interest you.)
this looks like a bug to me, it should show what tags triggered the filter. would you mind filing this as a Support ticket? may be worth including in that ticket "maybe also it's weird to use a post with a filtered tag as a recommendation"...
also yeah, re: recommending something that may contain filtered tags... the actual recommended blogs "feed" that powers those blog carousels doesn't actually "know" about the post it's going to use in the preview until after we grab them, they're disconnected systems, so we end up with this kind of weird situation where the "end" of the codepath knows to cover this with a filter, but the "start" doesn't. a great example of what can happen in a very huge shared codebase where the person who's building the recommendation engine may have nothing to do with the person who's redesigning the visual layout of the recommendation.
Tumblr media
20 notes · View notes
frog707 · 2 years ago
Text
error rates in software
If somebody asked me how many bugs there are in my Heart library, the honest answer would be that I don't know. Currently the library's GitHub issue tracker shows no open issues. The library is about 21000 lines of code (excluding blank/comment lines), and most of it has never been systematically tested. An optimistic estimate would be 1 bug per 100 lines of code, so about 200 bugs. (A more realistic estimate might be 400-500 bugs.)
How can I justify publishing a piece of software with hundreds of bugs? Well, mainly because I think it satisfies a need. I use it every day. And when I find a bug, I fix it promptly. I haven't encountered a bug in the library since January, and the bug in question was discovered by code inspection, not testing. To me, Heart seems like good, reliable software.
How is it possible for a library with hundreds of bugs to appear reliable? Well, I started writing Heart in 2017, and it hasn't changed much in the past year, so the commonly used codepaths have been heavily tested. While it's entirely possible for software to exhibit bugs that pass unnoticed by the user, it's likely most of the remaining bugs occur in unusual situations.
A user other than myself might use the Heart library differently, exercising code I rarely (or never) use. To them, Heart might not seem so reliable.
Now according to the article below (citing Wired magazine from 2012), a modern high-end car "has" about 10 million lines of code.
It's unclear whether all that software runs on the car itself, or if that number includes software used to design and test the car. During the 1990s, Microsoft applications sold to the public averaged about 5 defects per 1000 lines of code, which was remarkably good IMHO. I can't imagine the software quality of a Lexus is any better than that. So a modern car probably has at least 50000 software defects.
It's mind boggling.
Even if all that code is actually running on the car, it doesn't mean the car is unsafe or unreliable. The Wired article hints that most of that code is for entertainment, not safety or reliability. Still, there are certainly bugs in every large software system, and the more you deviate from the conditions under which the software was tested, the more likely you are to encounter them.
Are there safety-critical software bugs in every new car? You bet there are! Caveat emptor.
2 notes · View notes
somnilogical · 5 years ago
Text
no justice no peace
I can't believe I'm here. No, I just can't believe it. It was always this peaceful here. When they burned 2,000 people... Jews... every day, it was just as peaceful. No one shouted. Everyone went about his work. It was silent. Peaceful. Just as it is now.
-shoah
years ago i said this phrase at a protest against trans oppression. other people were saying it and it seemed true. but like it is true.
what is justice?
as far as i can tell, justice is the timeless part of good optimization. (it exploits acausal correlations between embeddings.)
it has a separate name from "optimization for good ends" because humans have a hard time thinking of timeless optimization for good ends as contiguous with optimization for good ends.
if someone points a gun at your chest, presses you against the ground, and painfully twists your arms behind your back for a nonviolent protest against injustice, that isnt peaceful. why? because they are damaging your body, impeding your freedom of motion.
if someone leaves a sign up at a pool that its WHITE ONLY and everyone complies with this, is that peaceful? no, it is part of a system of disenfranchisement which ultimately aims to kill black people. if anyone did defy this sign, they would violently suppress them.
if there cant be peace while there is injustice in the land, what is peace?
the absence of injustice.
what is the absence of injustice?
maybe some people want to go "you people have nice hair and skin and dont have muscles or weapons or political leverage with anyone around here who does, id like to cut it all off to make a pretty purse" and then kill you all. thats pretty unjust. an absence of injustice would be for someone to avenge their deaths and kill the person who killed for no just cause, lowering the measure where they did this in the first place.
if peace is to be used for any set of codepaths, instead of just the absence of one person damaging another's body; where cops pointing guns at people and shouting orders isnt 'peaceful' despite the fact that they are not 'damaging' your body if you sim out how the battle would go in your head and avoid getting shot; the codepaths it should reference is all optimization for good ends.
7 notes · View notes
sophiakc · 9 years ago
Photo
Tumblr media
D E S I G N I N G    T O    R E D U C E    
C O G N I T I V E    O V E R L O A D
Product Design and iOS development
— Sketches, Wireframes, User Interview, Interaction Design, Onboarding, iOS (Swift) animation and Development
〰️    C o n t e x t    〰️
About
Memoir is an app that enables you to unload your thoughts, whenever you want throughout your day. You just had a delicious meal with a loved one? Write how delighted you feel. You just finished a meeting and you are upset about the outcomes? Throw few notes.
All you have to do is: open the app, write down few words, go back to your journey! All your notes are securely saved within your calendar, findable anytime through keywords and the calendar timeline.
Use scenarios
Feeling upset when going
〰️    C h a l l e n g e    〰️
Tumblr media Tumblr media
Back-end
Memoir has been programmatically animated with Swift (iOS) as a team project for CodePath iOS for Designers. Memoir uses iCal SDK to send text entries.
UX/UI Design
Mental model as a user: What’s the UI components of the existing experience of writing a diary, on a physical notebook?
When I want to write a new note, I go to the next blank page on the right.
When I want to read my previous notes, I go to the left pages. The more I turn pages, the further it goes backward in time.
The bookmark enables to go straight to the last page I’ve written.
Tumblr media
UI Gesture based-only
Inspired by the UI of other apps and for the sake of implementing fun and advanced iOS features, we considered the following challenge: how to navigate without any call to actions and relying entirely on gestures?
This implies a coherent mental model based on actual use of the app.
User Interviews
Why do you hold a diary? How does it help you in your life?
Why don’t you hold a diary? What do you do instead?
Tumblr media
Demo day team presentation
Tumblr media
SEE VIDEO OF THE DEMO
SEE GITHUB REPOSITORY
0 notes
carniceria · 2 years ago
Text
bro im so pissed i could do this codepath thing but its gonna conflict with my stats class idk if i should just drop the course or give up the application
0 notes
longlevel · 3 years ago
Text
Install firefox
Tumblr media
#Install firefox for free#
#Install firefox how to#
#Install firefox for mac#
#Install firefox install#
#Install firefox update#
Use the system-wide dev-libs/libevent instead of bundled Use the system-wide media-libs/libjpeg-turbo instead of bundled Use the system-wide dev-libs/icu instead of bundled Use the system-wide media-libs/harfbuzz and media-gfx/graphite2 instead of bundled Use the system-wide media-libs/dav1d and media-libs/libaom library instead of bundled !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occurĮnable support for the media-sound/sndio backend Use media-libs/openh264 for H264 support instead of downloading binary blob from Mozilla at runtimeĪdd support for profile-guided optimization for faster binariesthis option will double the compile timeĮnable support for remote desktop and screen cast using media-video/pipewire If you want to get meaningful backtraces see ĭisable EME (DRM plugin) capability at build timeĪllow Gecko Media Plugins (binary blobs) to be automatically downloaded and kept up-to-date in user profilesĪctivate default security enhancements for toolchain (gcc, glibc, binutils)įorce-enable hardware-accelerated rendering (Mozilla bug 594876)Īdd support for the JACK Audio Connection Kit
4.6 Windows decorations missing in Fluxbox since FF-91.3.0Įnable dbus support for anything that needs it (gpsd, gnomemeeting, etc)Įnable extra debug codepaths, like asserts and extra output.
4.4 Screen tearing / stuttering smooth scrolling.
4.3 Lack of sound (www-client/firefox-bin).
2.8 Disable enforced digital signatures verification in Firefox >=48.
2.4 Bigger scrolling regions for Up/Down.
#Install firefox for free#
Install Firefox for free and safe web browsing. You can follow the easy instructions above to download Firefox for Mac. Start Firefox in safe mode to see if it works well. You may disable the installed plugins in Firefox to see if it can help fix Firefox not working well issue.įix 7.
#Install firefox update#
You can click the three-line icon at the upper-right corner of Firefox, click Help -> About Firefox to check and update Firefox version.įix 6. Update Mozilla Firefox to the latest version. In Firefox, you can click Library -> History -> Clear Recent History, select the time range, select Cache and Cookies, click Clear Now button.įix 5. You can try to clear cookies and caches of Firefox to fix some Firefox issues. Uninstall Firefox and reinstall it.įix 4. Restart your Mac computer and try to launch Firefox again.įix 3.
#Install firefox how to#
Learn how to force quit an app on Mac.įix 2. If Firefox freezes on your Mac, you can force close it and launch again. If the Firefox won’t start or is not responding on your Mac computer, you may try the solutions below to fix this problem.įix 1. Read More Some Tips to Fix Firefox Won’t Open or Not Responding on Mac For easy access, you can drag Firefox to the Dock, and you can click its icon on the Dock to launch it. Then you can find and open Firefox in Applications folder in Finder window. Drag the Firefox app icon to the Application folder on Mac. Then you can click Downloads icon and click the Firefox.dmg installation file to open it. Wait until it finishes downloading the Firefox installation file. Tip: If you want to manually choose the preferred system and language to download Firefox for Mac, you can visit the Firefox language and system selection page. The Firefox program will auto detect your computer OS and language and recommend the right version of Firefox for you.
#Install firefox for mac#
Open Safari or Chrome and visit Firefox for Mac download page. To download Mozilla Firefox web browser for your Mac computer, you need to use another browser to access Firefox website, for instance, Apple Safari, Google Chrome. Read More How to Download Firefox for Mac – Quick Guide Make sure your Mac computer meet the system requirements for downloading and installing Firefox. Hardware requirements: Macintosh computer with an Intel x86 processor.
#Install firefox install#
You can check below for how to download and install Mozilla Firefox for Mac devices. If you use a Mac, you can get Firefox for Mac. Among all of the open-source free browsers, Firefox is popular choice.
Some Tips to Fix Firefox Won’t Open or Not Responding on MacĪn easy-to-use, fast and full-featured browser allows us to access content on the internet quickly and safely.
How to Download Firefox for Mac – Quick Guide.
For more computer solutions and useful free utilities, you can go to MiniTool Software. If Firefox won’t open on Mac, this post also offers some simple tips to fix the issue. This tutorial explains how to fast download and install Firefox for Mac computer. Firefox, a popular free browser, is available on Mac, Windows, Android, iOS, Linux.
Tumblr media
0 notes
bananaeazy · 3 years ago
Text
How to get opengl 4.3 to work for doom
Tumblr media
#HOW TO GET OPENGL 4.3 TO WORK FOR DOOM DRIVERS#
#HOW TO GET OPENGL 4.3 TO WORK FOR DOOM FULL#
#HOW TO GET OPENGL 4.3 TO WORK FOR DOOM DRIVERS#
Hopefully this new stereo support isn't an unintentional release by NVIDIA hopefully they won't yank it in the next driver version! (I also tried the beta 314.14 and 314.21 drivers and my test program still works in stereo for both, though still only in full-screen. "Added Quad-buffered OpenGL Stereo support for Windows 8." However, there is a cryptic line in the 314.07 "Quadro and NVS Notebook Drivers" release notes. There's no mention of quad-buffered OpenGL stereo support having been added in the 314.07 GeForce driver's release notes. So it looks like this stereo support was introduced in 314.07. I then tested previous driver versions: neither 310.70 nor 310.90 worked in stereo.
#HOW TO GET OPENGL 4.3 TO WORK FOR DOOM FULL#
So it looks like the GeForce stereo only works for OpenGL programs explicitly written for stereo and only if full screen. - Stereo, full-screen: 3D Vision works!.- Stereo, windowed: 3D Vision does not work.- Mono, windowed: 3D Vision Automatic does not work.To investigate further, I created four test versions of the IperS program: Note: My display had to be set to 120Hz before starting the program in order for stereo to work. Seeing the Source Engine doesn’t yet support DX10 or DX11, and will continue to support OS X and possibly Linux going forward, OpenGL 3.x/4.x would be a prime candidate here for their next-gen codepath across all platforms with the existing DX9.0c and OpenGL 2.1 codepaths retained for legacy support and SM2.0 and below discarded. I was stunned when the "3D" light on my notebook came on and found that it was indeed displaying in stereo 3D! I was going to investigate doing OpenGL to Direct3D to 3D Vision per OpenGL to Direct3D to 3D Vision: yes, it works great!, but I wanted to start with a simple example so I adapted the "HWFlipping" version of the "IperS” sample from an old Stereoscopic OpenGL Tutorial. Here's an interesting development: quad-buffered OpenGL stereoscopic 3D is working with 3D Vision on my GeForce 680M laptop!
Tumblr media
0 notes
tumsozluk · 3 years ago
Text
CodePath announces Google support to help democratize computer science education for underrepresented students across Chicago
CodePath announces Google support to help democratize computer science education for underrepresented students across Chicago
Chicago, September 1, 2022 /PRNewswire/ — Google is providing funding as part of a national plan to expand access to computer science education for more than 11 million students in the United States. code paththe job of Chicago with $500,000 Grants to continue expanding opportunities to the nation’s most competitive tech jobs in underrepresented communities. With the recent influx of technology…
Tumblr media
View On WordPress
0 notes
elleryapple90 · 4 years ago
Text
How to Succeed in Tech if You’re on a Nonlinear Career Path
Michael Ellison, the founder and CEO at CodePath offers advice to those who are underrepresented or have a non-linear career path. from knowledge.website http://knowledge.website/communication/how-to-succeed-in-tech-if-youre-on-a-nonlinear-career-path
from Knowledge Website https://knowledgewebsite.tumblr.com/post/668242515794821120 from Gianna Jordan’s Blog https://giannajordan91.tumblr.com/post/668245962459889664 from Logan Eugene’s Blog https://loganeugene91.tumblr.com/post/668250403522117632 from Marilyn Jeremy’s Blog https://marilynjeremy91.tumblr.com/post/668253669303730176 from Vivian Butler's Blog https://vivianbutler91.tumblr.com/post/668256211988365312
0 notes