#coding (technically. its in javascript-)
Explore tagged Tumblr posts
Text
I'm learning how to code. This is my most recent drawing project for it :) my first few projects under the cut (janky redraws of dreams pfp while I was getting the hang of the drawing tools, and my first sprites)
#idk if the dnfies will like shrimp posting but i did pixelart of them holding hands in the bottom too so TECHNICALLY this is dnf fanart#dnfblr#dnf fanart#dreamnotfound#shrimp#pixel art#coding (technically. its in javascript-)
65 notes
·
View notes
Text
what the FUCK do i name my personal website
#i think id store code and other miscellaneous fun stuff on it#its mostly to practice stuff and make a portfolio and whatnot#i have a bit of a technical clue on how to make a website. i speak html and css. hell even javascript#but nothing else.#god i feel unprepared.
0 notes
Text
The UK no longer has end to end encryption thanks to Keir Starmer’s Labour government reanimating the zombie policy that is the Snoopers Charter, first peddled by Theresa May’s Tory government and rejected by the public.
Apple withdrawing end-to-end encrypted backups from the UK "creates a dangerous precedent which authoritarian countries will surely follow".
UK now likened to authoritarian regimes and why Starmer won’t challenge Trump since he is in lock step with US policies, openly goes after sick, disabled, pensioners and poorest, increasing their hardship rather than tax the mega rich. US policy is UK policy.
So what does this mean for Apple users in the UK?
All your data in the cloud is no longer secure in comparison to having ADP enabled and can be accessed by the government upon request. The GDPR is all but dead in the UK, there are now so many government policies that snoop on us by the back door with even news outlets online now charging us for access without *cookies enabled (data farming you whilst you read with no option to opt out unless you pay)
I checked with the ICO myself and it is a fully approved policy despite its contradiction to the rights of consent, removed in the process.
If you want a workaround here are my suggestions
Cancel your iCloud storage, your data will stay on the cloud until the renewal date, use that time to back it up locally or on a flash drive.

Change your iMessage settings to delete audio messages after 2 minutes and permanently delete messages after 30 days.
Alternatively, use a third party messaging app with a delete on read feature and disable Apple iMessage altogether.
If you are tech savvy you can set up a USB drive or flash drive directly into your router hub (you should have at least one USB slot, some have two) and use FTP to back up over wifi, you can do this on any device, you don’t need a desktop.
Use a VPN service or set one up. If you’re really technical you can use a Raspberry Pi to do this, but you will need to hard code it. Think Mr Robot.
This change does not impact sensitive data like medical details which remain end to end encrypted.
If you want to learn more on the sweeping bills being pushed through government and any action your can take visit Big Brother Watch: https://bigbrotherwatch.org.uk
*If you want to read news articles without paying for the privilege of not handing over your cookie data, simply disable javascript within your browsers settings and refresh the browser page. Remember to turn it back on when your done. Alternatively disable all cookies but know this will impact your online experience and access.
#big brother watch#orwellian#labour government#data privacy#end to end encryption#apple#government#uk politics#equality#discrimination#the matrix#advance data protection#big brother#1984#distopia#keir starmer#authoritarian#totalitarian#fascisim#police state#Theresa May#gdpr#Information Commissioner's Office#ICO
17 notes
·
View notes
Text
I haven't posted much for a while but I've actually been doing a lot so here's an update! First, I've been learning html and a little javascript so I can build a website from scratch on Neocities. It's a pretty cool place and filled with tons of passionate people all doing the same as me, trying to create their own fun corner of the web.
The site's still as a whole a work in progress but there's some fun stuff to look at. Link to my website if you want to check it out. Second, I've also been learning how to code in the game engine Godot! I want to make fun free web games with it, and I've made a lot of progress on one so far. The hang up on it is actually the art and not the code because I am drawing all the frames for these fish swimming by hand. It's a simple game where you're a small fish trying not to get injured or eaten by the bigger fish around you.
Sneak peak of how it's looking so far, the rudderfish (the white and brown striped fish to the left), has placeholder art and will have its final look with shading later on.
Also here's the swim cycle for the big fish (Goliath Grouper). It's technically done but specifically the spines on the top don't move with the body on the one frame where the fish turns its head towards the viewer, so I will attempt to fix that at some point. But other than that I like the goofy fella's lil animation.
I don't know when I will have the game done, because I have way too many projects I'm working on all the time, but it will get done eventually!
10 notes
·
View notes
Text
I have been into Dragon Age lately and am trying to revive my blog as I play through DA2. I've arrived at Act III. As much as I dread it ending, I'm also excited, and will probably continue on to DAI shortly thereafter.
I already have a handful of mutuals, but I'm not really sure if many of you are still active out there. I plan to reach out to a few people I've personally interacted with in the past, but in the meantime, I would like to make some friends with people of like-mind.
As mentioned, I haven't played DAI yet, but I know general spoilers up to that point. I'll cross the DAV bridge when I come to it, and I'm not scared of spoilers.
As a person/blogger, I tend to be a both-sides-er, so I might engage with both positive and negative posts, about characters or story or meta conditions or whatever, but if something is likely to be divisive, I try to tag it, and I try not to dwell on things I dislike or feel sad about often.
Here is some stuff about my playthroughs and the ships I like to spin around in my mind:
Dragon Age Origins. My first/primary Warden is Rosamunde Cousland. In the technically permissible playthrough, her love interest is Alistair, and they take on ruling Ferelden together. However, in my headcanon worldstate, this eventually becomes a polycule with Morrigan, post-Witch Hunt, no matter how I must deviate from canon possibilities to get it.
I also ship my best friend's male Amell Warden with Zevran and her female Tabris with Leliana, but I'm generally cool with Whatever.
I'm really into the Awakening group, and I ship Anders/Nathaniel or Nathaniel/Velanna. If my Warden wasn't already taken for a poly triad, I'd consider him for her, too.
Dragon Age 2. My Hawke is sort of a shared creation between myself and my best friend. We've both played as him, so it feels like he's "ours." He is a Purple Mage Hawke, largely based on the default character model but with darker skin. You can see my steam screenshots and other posts for what I mean. (It's nice; he's handsome.) My Hawke's most canon love interest is Fenris, and I rarely am this OTP about anything, but this particular Hawke, I feel, can only be with Fenris. However, I am deeply into multishipping in DA2 era and among the Kirkwall crew.
Here are some examples: I like to read some interpretations of Hawke/Varric, though I appreciate their platonic bond in canon. Isabela/Carver. Isabela/Merrill. Isabela/Anders (though I think it's a toxic disaster, I want to play with it badly). Red Non-Mage Hawke/Anders? I think. And I love all their friendships and even the ones who don't get along. The fact that they each have their own unique relationship makes me get all happy and whimsical.
I have not yet played DAI, but I am interested in a male-Inq/Dorian and a Solavellan run-through in turn (not sure which order yet).
And I don't know anything about DAV yet beyond its existence, but I'll get there one day.
So, if my ramblings are up your alley, please consider giving me a follow and interacting to your comfort level. I am really interested in writing at least short fic and getting into reading some others' fics, but I am a little overwhelmed, so it'd be nice to make some connections.
My pages on my blog are still functional but somewhat outdated due to the tumblr change on javascript allowability. I plan to make new ones based on newer codes that don't use it, but in the meantime, this can also act as a more current and temporary about page while I make a prettier pinned post.
4 notes
·
View notes
Note
Coding Master, I hope you're well! I don't want to bother you but if you have a free moment I was hoping for some guidance. I was wanting to know if there was a way to make the choices in sugarcube visually similar to how Choicescript does it. (Each choice, in it's own seperate box.) I had recently come across this from Brushmen. I find that the way the choices are set up look great, but I sadly don't want to use tweego to do it. https://brushmen.itch.io/cs-like-sugarcube-template/devlog/520639/preparation-steps Any and all help would be appreciated, if not possible I would just be happy to be sent to where you think I could find help.
If you don't want to use Brushmen's template, then no, not easily? You would have to learn enough HTML, CSS and JavaScript to either edit the default SugarCube template yourself or make a custom one.
If you want to use the template, I would look into installing Tweego even if you don't want to use it to compile your game. That way you can decompile it into an HTML file that you can then upload into the Twine editor and poke around. However, as Brushman's template was designed to work with VSCode, Twee 3 Language extensions, and Tweego, you may find that it does not work exactly as intended and you may need to be prepared to adjust or fix things to your liking.
Tweego is a nice asset to have around regardless, depending on the size of your game. I have to use it myself because Wayfarer is broken into multiple story files on account of its size; there's no way I can work on it all within one story file.
If it's just designing the choice boxes to replicate how they work in ChoiceScript, this should technically be pretty straightforward with a little CSS, but you may need to strike out on your own.
Personally, if you're adverse to using Tweego, I would start from scratch by editing the default SugarCube look or by editing a custom template. You can learn a lot through the process of making something yourself; the more familiar you are with the systems you're using, the better you will be at fixing things when they go awry and your game can only benefit from it.
14 notes
·
View notes
Text
Dev Log Mar 14 2025 - What's Taking so Long?
The Steam Deck version of Crescent Roll is moving along. The full game is playable, most of the audio issues have been resolved, but there's still the very slight teeny-tiny issue of WebKit being abysmally slow and we're sitting at only 10% CPU usage and 20FPS. Joy. We can fix it though. Without having to switch Web Browsers. I explained a bit before that the two options available for Web embedding are either Chromium/Chrome or WebKit/Safari, depending on your platform. Windows, Android and Xbox all have Chromium natively for you to use, Mac, IPhone, PlayStation, and Nintendo have WebKit, and then Linux and therefor Steam Deck don't have a standard one installed. We went with WebKit for Steam Deck because it's 200MB instead of 1.5GB and we have to bundle it with our game. When I said we can fix it, it's not that the actual game part of Crescent Roll isn't optimized - we actually did a pretty good job with all of the movement on-screen every frame - but there's some very specific things large surrounding it that we know are hurting performance considerably. Here a visualization of the call stack of a random average frame on the Main Menu from the Chrome profiling tools from my 10-year old i7-4770k machine:
The grey "Task" bar is the full length of the execution. The brown-yellow underneath are what run during the actual "Animation Frame" portion, then the Blue sections are Crescent Roll code, and Green is Phaser rendering code. So in this frame, it took 4.16ms for the full frame, of which, Crescent Roll used about 1.8ms to do its stuff, then Phaser took 1.5ms to do the render, and the remaining ~0.8ms was system stuff like GC and doing memory transfers to the GPU. 60Hz refresh rate would mean that you need to render in under 16 ms, so about 4ms for Windows Desktop means that I could theoretically get somewhere around 240fps if I let it run free. Which I mean, is pretty respectable. Why doesn't it run well on the deck? Technically, it's running okay, just not displaying okay. The internal game logic does all physics and animation calculations with lag compensation in mind. So whether you're getting 500 fps or 5, the in-game logic always calculates 60Hz. So sorry - no cheesing stage times with slow-mo. One reason the display is having issues is that it's single threaded. Which means we're not doing _anything_ in parallel. All of the game logic, graphics rendering, controller polling, etc. are all being done every frame in order every single time. The kicker is that we actually built the game to be able to do those things in parallel, but Javascript just doesn't have the concept of Threads for you to be able to just run whatever you want however you want. You have to implement Web Workers, which is essentially a completely separate program that you can't share memory with, forcing you to use a message bus, making life difficult. But not impossible, and that's all that really matters. Just splitting it in 2 would already get us a 25% improvement, and we could very likely do better than that. The other, slightly more major performance sink is that green bar for the Phaser rendering - that can be entirely eliminated at this point to cut the time in half. We've been replacing it piece-by-piece with our own code, and now, we're really just leaning on it for WebGL pushes at this point. Unfortunately, since it's an engine, there's quite a bit of extra baggage that it likes to do that we can't just turn off, so we're essentially running a lot of the same types of graphics calculations twice. Phaser is a perfectly good engine - don't get me wrong, but it's just superfluous for our use at this point, specifically for us.
So yeah - it's going to take another week or so to get that 100% sorted out. There's a patch incoming Monday for full Controller support and couple of minor improvements. In the meantime, you can swap to the beta branch on Steam if you absolutely must try the Steam Deck version now. No complaints about the speed though - I warned you.
2 notes
·
View notes
Text
My Journey to Becoming a Frontend Developer
In today’s fast paced digital world, frontend development has become the cornerstone of delivering exceptional user experiences. From seamless web app navigation to visually stunning interfaces, a frontend developer brings ideas to life.
Why I Want to Be a Frontend Developer and How HNG Will Help Me Achieve My Goals
My journey to becoming a frontend developer is fueled by a passion for creativity, problem solving, and the desire to create applications that users love. Joining HNG internship bootcamp as a frontend developer is the perfect opportunity to sharpen my skills and gain hands on experience while contributing to real world applications.
My Motivation for Becoming a Frontend Developer
Ever since I first interacted with web technologies, I’ve been fascinated by the magic of turning code into functional and beautiful interfaces. It’s amazing how a few lines of HTML, CSS, and JavaScript can create immersive websites and applications that millions of people rely on daily.
Another reason I gravitate toward frontend development is its user centric nature. I love the idea of creating intuitive and visually appealing designs that make people’s lives easier. I’m driven by the opportunity to make technology accessible and enjoyable for everyone.
How HNG Will Help Me Grow in the Field
The HNG internship bootcamp is a game changer for aspiring developers like me. One of the most significant challenges in the tech world is bridging the gap between theoretical knowledge and real world application. HNG provides the perfect platform to tackle this by immersing participants in a fast paced, project driven environment.
Here’s how I believe HNG will accelerate my growth:
Hands On Experience: HNG’s focus on building real life applications aligns perfectly with my goal to learn by doing. By collaborating with a team to tackle real world challenges, I will develop technical skills that can’t be learned in isolation.
Mentorship and Guidance: HNG’s experienced mentors will provide valuable insights and feedback, helping me refine my coding skills, improve my design thinking, and understand industry best practices.
Exposure to Modern Tools and Frameworks: The bootcamp emphasizes modern frontend technologies. This aligns with my goal of mastering the tools that drive innovation in the industry.
Networking Opportunities: Being part of a vibrant community of like minded developers and industry experts at HNG will expand my professional network and open doors for future opportunities.
My Goals for the Internship and How I Plan to Achieve Them
During my time at HNG, my primary goal is to become a finalist in the frontend track and I plan to achieve this through other key goals such as:
Master Frontend Fundamentals: I aim to strengthen my knowledge of HTML, CSS, JavaScript, and popular libraries like React. I plan to achieve this by actively participating in all coding sessions and tasks, seeking feedback, and consistently practicing.
Contribute to Real World Projects: One of my key goals is to contribute meaningfully to the applications we build at HNG. By collaborating with team mates, meeting deadlines, and embracing challenges, I hope to add value to every project as I move up the ladder.
Enhance Problem Solving Skills: Frontend development often involves debugging and optimizing code. I will approach every challenge as an opportunity to learn and improve my critical thinking.
Develop a Strong Portfolio: By the end of the internship, I want to have a portfolio showcasing my contributions to real world applications, demonstrating my skills to potential employers that require the service of an experienced JavaScript and React developer.
Conclusion
Becoming a frontend developer is not just a career choice for me, it’s a passion that aligns with my creative and technical interests. The HNG internship bootcamp provides a unique opportunity to accelerate my growth, gain hands on experience, and prepare for the dynamic world of frontend development. With a clear vision of my goals and a commitment to learning, I’m excited to embark on this journey and make the most of this incredible opportunity at HNG.
3 notes
·
View notes
Text
Orthodox Butterflies on INPRNT!
My math-/physics inspired artwork Orthodox Butterflies is now available on @inprnt. They have a sale right now and offer free worldwide shipping this weekend!
Elements of a geometrical construction presented as if this were an alien creature floating in deep space. The artwork is highlighting the beauty of the underlying math, but also speaks for itself as an abstract piece of geometric art.
Vibrant lines on dark background, resembling trajectory of charged particles. Science-inspired art with a science-fiction-like appeal, envisaged to be hung on the wall of the (home) office of a technical expert or scientist.
A three-dimensional Lissajous figure and its two-dimensional projections onto the three co-ordinate planes. Corresponding points are connected by projection rays in this orthographic projection.
Created with custom, hand-crafted code - no AI involved!
The original image is 6500x6500 pixels, and INPRNT's available print sizes make sure it will always be printed at 300dpi.
Here are two detail views (800x800 pixels) in the original high resolution!


I am very critical about how my lines look - and I am super happy how these turned out! This is not a vector graphic, but I am using javascript code based on threejs to render my lines as tubes.
5 notes
·
View notes
Text
hey yall i made a character sorter for splatbands!! its a little bare bones (no undo button, exclusion options, etc.) but it gets the job done!! feel free to reblog or reply with your results :D!
link to the sorter!
(if the link doesnt work, you can access it through this blog's desktop url! make sure if you're on mobile that your browser is set to 'desktop view!')
general info about the sorter itself below the readmore!
where are the idols?
this sorter was made specifically with the splatbands fandom in mind, rather than the broader splatoon fandom! so i left the idols out considering well. just how popular and relevant to the wider community they are. yes, they technically are band characters, but they're front and center to just about everything else about the game. so theyve been left out here.
now, if enough people DO want them added? i will absolutely add them in a heartbeat! but for the time being they will remain out of the list.
what about turquoise october and octoplush? what about dj octavio?
sort of the same reason as the idols, though in 2/3 of those cases, it's sort of the opposite? there's not really all that much characterization to turquoise october and octoplush, as they're just anonymous collectives of musicians. and this sorter was intended to highlight the characters of the bands, not just the bands themselves. if that were the case, it would be a splatbands song or band sorter, not just the characters! so, they're also being left out. buuuut again, the same thing goes for them! if enough people want them added and ask for it, i will absolutely load them up into the character list!
why use the non-localized character names?
because i have a personal vendetta against the underpaid noa intern that localized them <3 next question JOKE JOKE THATS A JOKE FOR LEGAL REASONS THAT IS A JOKE in all seriousness though, im just used to them more and, as said in the idols section, this sorter was made for the fandom in mind! i'd assume people here will be much more familiar with those names! (even though i am quite partial to a few of the more thoughtful name choices tbh…) you will only catch me using 'mashup' with full sincerity over my cold, dead body, though.
why no undo button or exclusion options?
ok so. i am by no means an expert at coding. this entire project was just something i threw together in 24 hours running off of a free template and my bare-bones html and javascript knowledge. and to my understanding, in order to actually get javascript RUNNING in a custom tumblr theme, you need to jump through a whole lot of hoops and contact support about it and. i do not really have the mental bandwidth or patience to do that atm.
that being said, if anyone reading this does have that knowledge and WOULD like to pitch in and help improve the sorter in any sort of way, absolutely be my guest! you can send me an ask or a dm over on my main about it and i'd be glad to add onto this to make it better!
but as of rn? the sorter works and the little guys go into their list. i am as happy as i can be just with that alone <3
#splatoon#splatoon 3#splatbands#splatband#character sorter#dedf1sh#ahato mizuta#splatoon harmony#paruko#<- tagging those for reach i aint typing all of the band names in
32 notes
·
View notes
Text
Page Optimization Best Practices: A Blueprint for Online Growth
Page optimization is an essential system in virtual advertising and net development that ensures websites are person-friendly, functional, and aligned with seek engine tips. It encompasses quite a few techniques and practices aimed at improving a website's performance, visibility, and general user revel in (UX). By optimizing a page, companies and content creators can achieve better search engine ratings, force organic visitors, and ultimately enhance conversion costs. This complete manual explores the facets of page optimization, from its technical factors to consumer-centered techniques.
On-Page Optimization
The Importance of Page Optimization
In the state-of-the-art competitive digital landscape, merely having an internet site is inadequate. Users anticipate rapid-loading, cellular-friendly, and easily navigable pages. Moreover, serps like Google prioritize web sites that supply value through optimized overall performance. Here’s why page optimization is essential:
Enhanced User Experience: Optimized pages load quickly, are visually appealing and provide intuitive navigation. This maintains users engaged and decreases bounce costs.
Higher Search Engine Rankings: Search engines reward optimized pages with better ratings, growing visibility, and natural reach.
Increased Conversions: A properly optimized web page encourages customers to take desired movements, including creating a purchase, signing up for a publication, or downloading content.
Better Accessibility: Optimization guarantees your content is on the market to all customers, such as people with disabilities, through features like alt textual content and proper structure.
Cost Efficiency: Pages optimized for speed and overall performance lessen server load and bandwidth utilization, reducing hosting expenses.
Key Elements of Page Optimization
Page optimization is multi-faceted, involving each technical and content-associated components. Below, we delve into its middle elements:
Page Speed Optimization
Page speed refers to how quickly a webpage masses its content. It's a crucial rating issue for search engines like Google and Yahoo and significantly affects consumer retention. A postponement of even a 2nd can bring about massive drops in personal engagement and conversions.
Minimize HTTP Requests: Reduce the number of factors like photographs, scripts, and CSS documents.
Compress Images: Use equipment like TinyPNG or ImageOptim to lessen image sizes without compromising quality.
Enable Browser Caching: Cache static files so returning site visitors don’t need to reload all factors.
Use a Content Delivery Network (CDN): Distribute content across more than one server to reduce latency.
Optimize Code: Minify CSS, JavaScript, and HTML to put off unnecessary characters.
Mobile-Friendliness
With over half of internet traffic coming from cellular gadgets, ensuring a web page is cell-pleasant is non-negotiable.
Responsive Design: Use CSS frameworks like Bootstrap to ensure the page adapts to specific screen sizes.
Viewport Settings: Define the viewport for your HTML to govern how your website is displayed on cell devices.
Clickable Elements: Ensure buttons and hyperlinks are properly sized and spaced for touchscreens.
Content Optimization
Content is at the heart of any website. Optimizing content for relevance, readability, and engagement is crucial.
Keyword Research: Identify and use goal key phrases naturally in your content.
Structured Data: Use schema markup to help serps recognize your content material.
Readability: Use brief paragraphs, subheadings, and bullet points to make content material scannable.
Engaging Visuals: Incorporate great images, movies, and infographics to complement textual content.
On-page search engine marketing
On-page search engine marketing entails optimizing character internet pages to rank better in seek engine results.
Title Tags: Create compelling and keyword-rich titles within 50-60 characters.
Meta Descriptions: Write concise descriptions that summarize the page content material and consist of target keywords.
Header Tags (H1, H2, and so forth.): Use headers to shape content material logically and improve readability.
Internal Linking: Link to different applicable pages in your website to enhance navigation and search engine optimization.
Technical Optimization
Technical optimization makes a specialty of backend upgrades to beautify overall performance and seek engine crawlability.
Robots.Txt File: Guide engines like Google on which pages to crawl or ignore.
Canonical Tags: Avoid duplicate content material problems by specifying the favored version of a website.
SSL Certificate: Secure your website online with HTTPS to reinforce consideration and ratings.
404 Error Pages: Create consumer-friendly error pages to guide users to lower back to practical parts of your website online.
Tools for Page Optimization
Several tools can simplify and streamline the optimization manner:
Google PageSpeed Insights: Analyzes web page speed and affords actionable guidelines.
GTmetrix: Offers insights into website performance and areas for development.
Ahrefs/Semrush: Helps with keyword studies, content optimization, and search engine marketing monitoring.
Hotjar: Tracks user behavior via heatmaps and session recordings.
Strategies for Effective Page Optimization
To reap meaningful effects, you want a well-rounded strategy. Here’s a step-by-step approach:
Conduct an Audit
Before enforcing modifications, conduct a comprehensive audit to identify existing troubles. Tools like Screaming Frog or Google Analytics can reveal overall performance bottlenecks, broken hyperlinks, and content gaps.
Prioritize User Intent
Understand your target market's wishes and design pages that cope with them. Whether users are seeking data, products, or services, make certain your content aligns with their intent.
Focus on Core Web Vitals
Google’s Core Web Vitals — Largest Contentful Paint (LCP), First Input Delay (FID), and Cumulative Layout Shift (CLS) — are crucial for web page optimization. Aim to meet their benchmarks for stepped forward user revel in and scores.
Test and Iterate
Optimization is an ongoing system. Use A/B checking out to experiment with web page layouts, calls-to-movement (CTAs), and different elements. Monitor overall performance and refine based on results.
Keep Up with Trends
The digital landscape evolves swiftly. Stay knowledgeable about updates to look engine algorithms, layout developments, and emerging technologies.
Common Challenges and Solutions
While web page optimization gives huge advantages, it also affords challenges:
Balancing Speed and Functionality: Advanced capabilities like animations can sluggish down your website online. Use light-weight libraries and green coding to strike stability.
Content Overload: Too a whole lot of content material can crush users. Focus on turning in concise, cost-driven information.
Managing Multiple Platforms: Ensuring steady overall performance across desktop, cell, and drugs requires thorough testing and responsive design.
The Future of Page Optimization
As technology advances, web page optimization will keep evolving. Emerging tendencies like voice seek, AI-pushed personalization, and augmented truth (AR) integration will redefine consumer expectations. Websites will want to leverage these improvements at the same time as adhering to foundational optimization ideas.
Additionally, the rise of privacy policies emphasizes the want for transparent facts practices. Optimized pages will not only perform nicely but additionally build acceptance as true through secure and ethical dealing with of personal records.
2 notes
·
View notes
Text
So let's get into the nitty-gritty technical details behind my latest project, the National Blue Trail round-trip search application available here:
This project has been fun with me learning a lot about plenty of technologies, including QGis, PostGIS, pgRouting, GTFS files, OpenLayers, OpenTripPlanner and Vita.
So let's start!
In most of my previous GIS projects I have always used custom made tools written in ruby or Javascript and never really tried any of the "proper" GIS tools, so it was a good opportunity for me to learn a bit of QGIS. I hoped I could do most of the work there, but soon realized it's not fully up to the job, so I had to extend the bits to other tools at the end. For most purposes I used QGis to import data from various sources, and export the results to PostGIS, then do the calculations in PostGIS, re-import the results from there and save them into GeoJSON. For this workflow QGIS was pretty okay to use. I also managed to use it for some minor editing as well.
I did really hope I could avoid PostGIS, and do all of the calculation inside QGIS, but its routing engine is both slow, and simply not designed for multiple uses. For example after importing the map of Hungary and trying to find a single route between two points it took around 10-15 minutes just to build the routing map, then a couple seconds to calculate the actual route. There is no way to save the routing map (at least I didn't find any that did not involve coding in Python), so if you want to calculate the routes again you had to wait the 10-15 minute of tree building once more. Since I had to calculate around 20.000 of routes at least, I quickly realized this will simply never work out.
I did find the QNEAT3 plugin which did allow one to do a N-M search of routes between two set of points, but it was both too slow and very disk space intense. It also calculated many more routes than needed, as you couldn't add a filter. In the end it took 23 hours for it to calculate the routes AND it created a temporary file of more than 300Gb in the process. After realizing I made a mistake in the input files I quickly realized I won't wait this time again and started looking at PostGIS + pgRouting instead.
Before we move over to them two very important lessons I learned in QGIS:
There is no auto-save. If you forget to save and then 2 hours later QGIS crashes for no reason then you have to restart your work
Any layer that is in editing mode is not getting saved when you press the save button. So even if you don't forget to save by pressing CTRL/CMD+S every 5 seconds like every sane person who used Adobe products ever in their lifetimes does, you will still lose your work two hours later when QGIS finally crashes if you did not exit the editing mode for all of the layers
----
So let's move on to PostGIS.
It's been a while since I last used PostGIS - it was around 11 years ago for a web based object tracking project - but it was fairly easy to get it going. Importing data from QGIS (more specifically pushing data from QGIS to PostGIS) was pretty convenient, so I could fill up the tables with the relevant points and lines quite easily. The only hard part was getting pgRouting working, mostly because there aren't any good tutorials on how to import OpenStreetMap data into it. I did find a blog post that used a freeware (not open source) tool to do this, and another project that seems dead (last update was 2 years ago) but at least it was open source, and actually worked well. You can find the scripts I used on the GitHub page's README.
Using pgRouting was okay - documentation is a bit hard to read as it's more of a specification, but I did find the relevant examples useful. It also supports both A* search (which is much quicker than plain Dijsktra on a 2D map) and searching between N*M points with a filter applied, so I hoped it will be quicker than QGIS, but I never expected how quick it was - it only took 5 seconds to calculate the same results it took QGIS 23 hours and 300GB of disk space! Next time I have a GIS project I'm fairly certain I will not shy away from using PostGIS for calculations.
There were a couple of hard parts though, most notably:
ST_Collect will nicely merge multiple lines into one single large line, but the direction of that line looked a bit random, so I had to add some extra code to fix it later.
ST_Split was similarly quite okay to use (although it took me a while to realize I needed to use ST_Snap with proper settings for it to work), but yet again the ordering of the segments were off a slight bit, but I was too lazy to fix it with code - I just updated the wrong values by hand.
----
The next project I had never used in the past was OpenTripPlanner. I did have a public transport project a couple years ago but back then tools like this and the required public databases were very hard to come by, so I opted into using Google's APIs (with a hard limit to make sure this will never be more expensive than the free tier Google gives you each month), but I have again been blown away how good tooling has become since then. GTFS files are readily available for a lot of sources (although not all - MAV, the Hungarian Railways has it for example behind a registration paywall, and although English bus companies are required to publish this by law - and do it nicely, Scottish ones don't always do it, and even if they do finding them is not always easy. Looks to be something I should push within my party of choice as my foray into politics)
There are a couple of caveats with OpenTripPlanner, the main one being it does require a lot of RAM. Getting the Hungarian map, and the timetables from both Volánbusz (the state operated coach company) and BKK (the public transport company of Budapest) required around 13GB of RAM - and by default docker was only given 8, so it did crash at first with me not realizing why.
The interface of OpenTripPlanner is also a bit too simple, and it was fairly hard for me to stop it from giving me trips that only involve walking - I deliberately wanted it to only search between bus stops involving actual bus travel as the walking part I had already done using PostGIS. I did however check if I could have used OpenTripPlanner for that part as well, and while it did work somewhat it didn't really give optimal results for my use case, so I was relieved the time I spend in QGIS - PostGIS was not in vain.
The API of OpenTripPlanner was pretty neat though, it did mimic Google's route searching API as much as possible which I used in the past so parsing the results was quite easy.
----
Once we had all of the data ready, the final bit was converting it to something I can use in JavaScript. For this I used my trusted scripting language I use for such occasion for almost 20 years now: ruby. The only interesting part here was the use of Encoded Polylines (which is Google's standard of sending LineString information over inside JSON files), but yet again I did find enough tools to handle this pretty obscure format.
----
Final part was the display. While I usually used Leaflet in the past I really wanted to try OpenLayers, I had another project I had not yet finished where Leaflet was simply too slow for the data, and I had a very quick look at OpenLayers and saw it could display it with an acceptable performance, so I believed it might be a good opportunity for me to learn it. It was pretty okay, although I do believe transparent layers seem to be pretty slow under it without WebGL rendering, and I could not get WebGL working as it is still only available as a preview with no documentation (and the interface has changed completely in the last 2 months since I last looked at it). In any case OpenLayers was still a good choice - it had built in support for Encoded Polylines, GPX Export, Feature selection by hovering, and a nice styling API. It also required me to use Vita for building the application, which was a nice addition to my pretty lacking knowledge of JavaScript frameworks.
----
All in all this was a fun project, I definitely learned a lot I can use in the future. Seeing how well OpenTripPlanner is, and not just for public transport but also walking and cycling, did give me a couple new ideas I could not envision in the past because I could only do it with Google's Routing API which would have been prohibitively expensive. Now I just need to start lobbying for the Bus Services Act 2017 or something similar to be implemented in Scotland as well
21 notes
·
View notes
Text
How to Prepare for a Coding Interview
Coding interviews are a crucial part of the tech hiring process. As a candidate, you'll need to showcase your technical skills, problem-solving abilities, and understanding of data structures and algorithms. To succeed, it's essential to be well-prepared. In this article, we'll discuss the steps you can take to prepare effectively and increase your chances of getting hired.
Understanding the Coding Interview Process
Before diving into the preparation, it's important to understand the coding interview process.
These interviews are not just about writing code; they also test your ability to think critically under pressure and explain your reasoning behind the solutions you propose. Interviewers are interested in understanding your approach to problem solving and how you handle challenges in a real-time setting.
The Role of Coding Interviews in Tech Hiring for Candidates
By evaluating your coding abilities, interviewers can determine if you're the right fit for the job and the company culture. However, it's not just a one-sided test. It's also an opportunity for the candidate to learn more about the company and its work environment.
Developers will only be successful in a role if the environment is one that is conducive to how they like to work, collaborate, and engage. It’s a win-win benefit for both candidates and employers if both sides are equally excited at the prospect of working together.
Different Types of Coding Interviews
Coding interviews can vary in format and structure. Some companies may conduct coding interviews in-person, while others prefer remote interviews. Additionally, coding interviews can be divided into different types, such as whiteboard coding exercises, take-home assignments, or pair programming sessions.
Each type of coding interview has its own unique challenges and requirements. Whiteboard coding exercises, for example, test your ability to write code on a whiteboard while explaining your thought process out loud. Take-home assignments, on the other hand, give you the opportunity to work on a coding problem at your own pace and showcase your problem-solving skills in a more relaxed environment. Pair programming sessions involve collaborating with an interviewer to solve a problem together, demonstrating your ability to work effectively in a team setting.
Essential Skills for Coding Interviews
Preparing for a coding interview requires mastering several essential skills. Let's explore these skills in detail.
Programming Languages to Master
Individuals should be proficient in at least one programming language commonly used in the industry, such as Python, Java, C++, or JavaScript. Understanding the syntax, data types, control structures, and libraries of your chosen language will help you solve coding problems efficiently.
Problem-Solving Skills
Problem-solving skills are an integral part of a coding interview. Being able to approach a problem strategically, break it down into smaller subproblems, and devise an efficient solution is highly valued. Practice solving coding challenges and algorithms to sharpen your problem-solving abilities.
Understanding Data Structures and Algorithms
Data structures and algorithms are the building blocks of computer science. Familiarize yourself with various data structures like arrays, linked lists, stacks, queues, trees, and graphs. Additionally, learn popular algorithms for searching, sorting, and optimization. Understanding these concepts will help you analyze problems and devise optimal solutions.
Pre-Interview Preparation
Embarking on the journey of pre-interview preparation is akin to laying the foundation for a successful career in the tech industry. The diligence and effort you put into honing your skills now will pave the way for future opportunities and growth. Here are a few steps you should take before the interview.
Review Common Coding Questions
Start by researching and reviewing common coding questions asked in interviews. Online platforms like LeetCode or HackerRank offer a vast collection of coding problems categorized by difficulty levels. Spend time solving these problems to familiarize yourself with the question patterns and potential solutions.
Practice on Coding Platforms
Practicing on coding platforms simulates the interview environment and helps improve your coding skills. These platforms often offer interactive coding challenges, enabling you to practice solving problems under time constraints. Engage in coding competitions or take part in mock interviews to get a real feel for the interview process.
Brush Up on Technical Knowledge
Aside from coding skills, brush up on your technical knowledge. Review key concepts related to your preferred programming language, data structures, algorithms, and system design. Understanding these concepts in-depth will help you during technical discussions and coding challenges.
During the Interview
Now let's focus on what to do during the coding interview to maximize your chances of getting hired.
When you enter the interview room, remember that your body language and demeanor also play a significant role in making a positive impression. A firm handshake, good posture, and maintaining eye contact can convey confidence and professionalism. These non-verbal cues can complement your technical skills and create a well-rounded image for the interviewer.
Effective Communication During Coding Interviews
During the interview, effective communication is crucial. Clearly explain your thought process, rationale, and any assumptions you make while solving a problem. Communicating effectively helps the interviewer understand your approach and evaluate your problem-solving abilities.
Moreover, active listening is equally important during coding interviews. Pay close attention to the interviewer's prompts and questions. This demonstrates your ability to process information in real time and adapt your problem-solving strategy accordingly. Engaging in a dialogue rather than a monologue can showcase your collaborative skills and willingness to take feedback.
Demonstrating Your Thought Process
Interviewers are interested in how you approach problems and arrive at solutions, rather than just the end result. Be vocal about your thought process throughout the interview. Explain the steps you're taking, potential optimizations or trade-offs, and any ideas that come to mind. This demonstrates your ability to analyze problems and think critically.
Also, don't hesitate to ask clarifying questions if you encounter ambiguity in the problem statement. Seeking clarification shows your attention to detail and ensures that you and the interviewer are on the same page. It's better to take a moment to clarify the problem than to proceed with a misunderstanding that could lead you down the wrong path.
Handling Unknown Problems
Not all problems presented in coding interviews are familiar or straightforward. Interviewers often assess candidates' ability to handle unknown problems and think on their feet. When faced with unfamiliar problems, stay calm and logical. Break down the problem, identify patterns or similarities to other problems you've solved, and come up with a step-by-step approach.
Remember, the interviewer is not just evaluating your technical skills but also your problem-solving methodology. Demonstrating resilience in the face of uncertainty and showcasing adaptability can leave a lasting impression. Embrace the challenge of unknown problems as an opportunity to showcase your creativity and resourcefulness in problem solving.
In Conclusion
Preparing for a coding interview requires a combination of technical skills, problem-solving abilities, and effective communication. Understanding the coding interview process, mastering essential skills, and thorough preparation will increase your chances of getting hired. Remember, practice makes perfect, so devote enough time to solving coding problems, reviewing concepts, and gaining confidence.
3 notes
·
View notes
Text
What to do when you spot a broken website
I am a very firm believer in either sticking to your principles or update them.
So when I got this error while I tried to search for C/C++ on my national job portal:
My first thought was "Huh, that is sorta funny" (especially since the code to show me the email address to report this error to was ALSO broken... meaning that whoever made the code that should run if the website broke... never tested it). And then I realized what I was looking at.
And at that point I think I had a ethical duty to notify people to get this fixed. FAST. Why?
It comes under "You are responsible for your choices". With it being understood that doing nothing is also a choice, and that taking a job where you work for, and help a company with doing evil is NOT a choice, if that is the only job you could get (IE, you did not have the power/money/mental health/time to make a choice)
It is now fixed*, so I wanted to make this post for all in the little codeblr community doing any front-end work. Web or not. With 3 lessons to learn from this.
First thing to get from this: "Everyone makes mistakes". This is one of the reason good code is not code without errors. It is code where it is easy to make changes and fix errors. You then try to find as many errors as you can with code reviews, automated testing, having a work environment that does not punish human errors( which encourages people to HIDE errors ) and so on.
Second thing: "Sanitize your user input. Always". Write code that assumes that every single user wants nothing more than to break your code and exploit its vulnerabilities.
This had NOT been done here. This error shows that characters in the string that was made from my search terms, was being run as code. As in, I, or anyone else, could run code in the middle of this javascript code. Meaning it is possible that someone could write code as part of their search that would make the javascript code do... whatever they wanted to. Including deleting the entire backend database. Or steal the info. This is why you ALWAYS sanitize your user input. Basically encode all potentially dangerous characters as something else while working on them. There are libraries like validator.js and express-validator that will do it for you, if you use javascript.
And the third thing. "Do NOT investigate further" . As soon as you confirm that your user input gets treated as code, you contact whoever is running it. If they do not take the threat seriously and it is still there after a week or two, contact established press with this info. You may read about so called grey hat hackers, who unlike black hat hackers(who is people wishing to do harm) or white hat hackers(Who are hired to try to break into a companies software to test it), are trying to find security flaws with good intentions, but are unaffiliated with whoevers code they are trying to break into. In an ideal world, doing that, and then contacting the company, SHOULD result in the company thanking them . But often it also leads to the company suing. And winning. Since breaking in to show that it is possible, is technically still breaking in. So do NOT start testing what you are able to do with the exploit you found. Report it to them, and check a weeks time later if it is fixed. If it keeps being vulnerable, contact the press. The site fixed this error after half a week. But they did it, not by encoding the dangerous characters into something else, but to simply remove them all from the user input string. Meaning that I still cannot search for "C++". Now I just get any job that contains the letter "C"... I mean... it is better... So if you take user input, and it does not brick your code in dangerous ways. You are doing better than whoever coded this for the Danish State :p
12 notes
·
View notes
Text
So I've been tagged
By this lovely little soul that goes by the handle of @treshmind. And apparently I am the mutual they want to learn more about, which is a compliment I will hold dear and near.
Do you make your bed? People say your body is your temple. My temple is my bed, a direct reflection of how I'm doing. And right now literally everything is there, not to mention I technically sleep on a couch. But I get by, Imake my little space everyday to catch a few zzs.
Favourite number? Not sure if I have one. Probably not. Seven rings nice though. I always considered it to be the "proud" number, as it looks like a person with their chest forward. Much like the idle stance of everyone's favourite vampire.
What’s your job? Graphic / UX / UI Designer & Front-end developer. 10 years a designer, now venturing into IT. I love creating pretty things that touch people, so to speak, figuratively and literally. Something that hits them and/or they can interact with. Creating experiences, waving stories. I learned HTML & CSS when I was like 15, had a blog and couldn't find a nice skin for it - so I just coded my own. Javascript, typescript and vue.js came along last year and honestly, I'm having a blast. And no, pls don't look at my tumblr, I did code its appearance bit, but it's just tweaks, it doesn't say anything about my skills.
If you could go back to school would you? I would actually and it's something I'm considering. One for front-end development to give myself stronger foundation and boost of confidence, and another for foreign language. Spanish & German have my special attention there.
Can you parallel park? I'm willing to try!
Do you think aliens are real? I always have a hard time defining "aliens". I think most people's perception of what counts as "living" is limited at best and hypocritical at worst. I've heard of bacterias having a better time than some of the fully-formed, fully-conscious humans on Earth. Add humanity's general complex of seeing themselves as the most complex existence in the history and you can probably cook up my general stance on the topic. I don't think Earth is the only place there's a "life" on, but aliens understood as extraterrestrial livings, are probably not modeled after the evolutionary fart currently dominating the 3rd planet from the Sun.
Can you drive a manual car? I can, actually. My father is a car mechanic, I take these things pretty seriously, you know. Should I ever have a car, I don't think I'd go for automatic.
What’s your guilty pleasure? To be fair, all my pleasures are guilty. But as it stands now, my most guilty would be to indulge in my feelings and let myself play a game or doodle or write something while knowing there's piles of work I'm behind on.
Tattoos? One on my back between my shoulder blades, just a standard egdy barcode with my birthdate underneath. And one over my heart (or just over my left tit, let's be honest) saying "Ideas are bulletproof", but mirrored - so that I can read it when I look in the mirror.
Favourite colour? Black, red. I usually wear all black with golden accessories and absolutely seizure-inducing, colorful singular statement pieces.
Favourite types of music? Not sure what counts as "favourite" as I prefer music that makes me feel things, whatever the genre. I like the experimental, funky sound, but I also enjoy the deeply consuming sound of progressive electronic music, which help me deep-focus at work, so there's that ~. And oh, I love voices. Talented voices, singing voices, raw, honest voices. I sing a little and enjoy admiring this craft in others.
Do you like puzzles? Oh absolutely. I'm already hooked.
Any phobias? I thought I was afraid of spiders until I lived with a girl who was REALLY afraid of them and I stepped in as this chivalrous knight in shining armor charging at the beast and – So no, not really.
Favourite childhood sport? I actually participated in a lot of disciplines. I wish I gave acrobatics more time & attention. It felt so freeing and beautiful. So poetic, almost.
Do you talk to yourself? Like out loud? Not anymore, but I do have an old pal on me in my head which is eyyyyy, isn't that me?
What movies do you adore? "V for Vendetta" - about how trauma can reduce a person into a concept. In this case - a concept of vengeance. Dangerous, loveable, tragic concept I resonate with very much. This is also the movie where my tattoo quote comes from.
Where I validated my stance that you don't really need to see the other person to know and love them.
Your experiences and feelings are just as valid, even if someone misled you or you never truly met. And the masks and theatrics cannot really conceal what's truly important, so don't be afraid to just... feel.
Coffee or tea? Coffee, freshly ground & brewed, unless I have the instant kind of day, with milk. Tea - preferably Dilmah, either green or earl grey.
First thing you wanted to be growing up? Oh, an artist probably. Little did I know how difficult and anxiety-inducing it would prove.
----
No pressure tags: @herdarkestnightelegance, @thedomesticanthropologist, @nocna-orchidea
3 notes
·
View notes
Text
Top Internship Opportunities Students Might Be Missing Out On
In the bustling city of Ahmedabad, amidst the scorching summer heat, lies a golden opportunity for IT aspirants to elevate their skills and gain hands-on experience in the ever-evolving realm of technology. The Special Character (TSC), with its innovative approach to internships, unveils a unique Summer Internship Program for 2024, promising a transformative experience for participants.
At the core of this program lies the essence of real-world application development. Unlike conventional internships that often involve mundane tasks, TSC's internship immerses participants in real-world projects, providing them with a unique opportunity to explore the complexities of IoT, email marketing, e-commerce platforms, and advanced web development.
What makes this program unique is its focus on hands-on learning and practical experience. Over just one month, participants are immersed in a dynamic environment where they not only learn theoretical concepts but also apply them to real-world scenarios. This hands-on approach fosters a deeper understanding of the subject matter, equipping participants with practical skills that are highly sought after in the industry.

Why Choose a Live Project Internship?
Many traditional internships relegate students to administrative tasks or basic research. While these can be valuable, a live project internship like TSC's offers a new level of engagement. Here's why it stands out:
Real-World Application: Forget theoretical exercises. You'll be working on actual projects, gaining exposure to the challenges and workflows of the industry. This practical experience makes your skills more relevant and showcases your ability to contribute on day one.
Skill Development on Demand: Summer Internship 2024 focuses on in-demand technologies like HTML5, CSS3, JavaScript, and frameworks like React Native and Node.js. You'll not only learn the basics but also gain expertise, making you a more attractive candidate for future tech jobs.
Building a Portfolio: Live projects become part of your portfolio, providing concrete evidence of your skills and accomplishments. This tangible showcase is invaluable when applying for full-time positions after graduation.
Beyond Technical Skills: A Holistic Learning Experience
The Summer Internship in Ahmedabad goes beyond just coding. TSC understands the importance of well-rounded professionals. Here's what sets them apart:
Expert Mentorship: You'll be guided by an experienced mentor with extensive industry knowledge. This one-on-one support ensures you grasp concepts effectively and navigate project challenges with confidence.
Multilingual Learning Environment: Whether you're comfortable in English, Gujarati, or Hindi, TSC offers a supportive environment that caters to your learning style. This fosters inclusivity and allows you to focus on the content, not the language barrier.
Communication and Soft Skills Training: Technical skills are crucial, but communication and teamwork are equally important in the professional world. TSC provides complementary training in these areas, ensuring you can collaborate and present your ideas effectively.
The Competitive Advantage: Showcase Your Talent and Win!
Summer Internship 2024 adds a fun twist with a team competition element. Working collaboratively on live projects, you'll get to showcase your talent, problem-solving skills, and team spirit. The top three teams win exciting cash prizes, providing financial rewards and recognition for your hard work.
Bonus Perks and Career Opportunities
The benefits of this internship program extend beyond the core curriculum. Here are some additional perks:
Convenient Location: Located in the heart of Ahmedabad, the program offers easy access, minimizing commute time and maximizing your learning hours.
Free Training Sessions: TSC provides complimentary sessions on communication and aptitude, enhancing your overall professional skillset.
Fun and Supportive Environment: Enjoy a positive work environment with a supportive team and complimentary goodies to keep you energized throughout the program.
Potential Career Launchpad: Impress your mentors with your dedication and skills, and you might land a permanent position at TSC, kickstarting your career in no time!
Limited Spots Available: Secure Your Seat Today!
With a focus on live projects, expert guidance, and a chance to win big, the Summer Internship in Ahmedabad offered by The Special Character is a unique opportunity for IT aspirants. Don't miss out on this chance to gain valuable skills, build a strong portfolio, and potentially secure your future in the ever-evolving tech industry.
Remember, spots are limited! Visit their website to register and secure your seat for a summer of learning, growth, and exciting possibilities.
Note: This blog post is informative and does not contain any promotional language for The Special Character.
#The Special Character#TSC#Web development#Software development#app development#mobile apps#software development#Web dev#devops#Internship#summer internships
2 notes
·
View notes