Tumgik
#single page application developer
priteshs · 2 years
Text
Why Prefer AngularJS for Single Page Application
Tumblr media
Nowadays, a technology captures the attention of designers and developers in order to create an excellent UI experience, in the construction of an SPA application, which is fully referred to as Single Page Application, and the technology is well known as AngularJS.
The major goal, especially for SPAs, is to load the HTML as quickly as possible and keep it refreshed when the required component of the app page is reloaded with newly updated data.
The applications designed as SPAs in the AngularJS development company are the fastest to execute, the most scalable, and the easiest to administer and access. These apps are suitable for small, medium, and large-volume businesses
In addition, during the development of the SPA, a developer can reuse code from other services and databases.
Why is Angular JS the best choice for SPA?
Angular is a popular app development framework introduced by Google that uses the MVC architecture; thus, this technology is ideal for creating the most powerful architecture. Because Angular provides high-end built-in capability for app creation as well as full support, it makes it simple for programmers to design and maintain an application.
Rapid Performance
Single-page applications built with the AngularJS framework typically load rapidly. This is made feasible by AngularJS’s component router functionality, which provides automatic code splitting. Users can now load simply the access request code for the display.
Cross-Platform Compatibility
An AngularJS framework allows a Single Page Application to be platform-agnostic.
Provides Excellent UI Support
Building SPAs with AngularJS provides an amazing user experience.
Allows for simple maintenance
If you chose AngularJS to design your SPA, future maintenance will be rather simple.
Provides a lot of leeway
When you have AngularJS under your control, designing SPAs becomes lot easier. Options are available with the AngularJS framework.
Inwizards can provide you with a well-deserved SPA developer
As you are aware, Inwizards is a constantly expanding IT firm And AngularJS development Company that provides clients all over the world with the best tech-based solutions for the advancement of their businesses. We are all eager to study and work on each new technology stage, which is why we are now giving a wonderful business-improvement solution using the Angular JS technology.
So, if you want to implement an SPA for your small or medium-sized business, Inwizards Software is the perfect place to start. Or you can also hire AngularJS developers and rest assured your work will be with perfection from our experienced developers.
0 notes
neuronimbusau · 3 months
Text
1 note · View note
dzinsights · 6 months
Text
Why Invest in Single Page Application? How to Hire Developers to Build A Single Page Application? What is the cost of Single Page Application Development?
Who doesn’t cherish a fast and responsive website that doesn’t take hours to load the page? Hours are an exaggeration, but even minutes seem like hours when you are in a hurry to view any information, product, or service.
Tumblr media
And any business that wants to deliver a smooth user experience must consider developing a single page web app. Why? SPAs can load any information in a breeze, so why not?
If it feels superficial to you, wait till we explore everything about SPAs before you have to invest in its development. So, without further ado, let’s learn about single page application development and make some good decisions.
Read More: https://www.decipherzone.com/blog-detail/single-page-app-development
0 notes
daniptechnologies · 1 year
Text
Web Development Trends for 2023: A Comprehensive Guide
Tumblr media
Introduction
The web development landscape is constantly evolving, with new trends and technologies emerging all the time. It can be tough to keep up with all the latest changes. Still, it's important to stay informed if you want to create websites and web applications that are both modern and user-friendly.
In this blog post, we will take a look at some of the top web development trends for 2023. We'll discuss what each trend is, why it's important, and how you can implement it in your projects.
Progressive Web Apps (PWAs)
PWAs are a type of web application that uses modern web technologies to provide an app-like experience to users. PWAs can be installed on users' devices, just like native apps, and they can be used offline. PWAs also support push notifications, which allows them to send users updates and alerts even when they're not actively using the app.
PWAs are becoming increasingly popular because they offer a number of advantages over native apps:
PWAs are more accessible, as they can be used on any device with a web browser.
PWAs are easier to develop and maintain, as they are built using web technologies.
PWAs are more secure, as they are not subject to the same security vulnerabilities as native apps.
How to implement PWAs:
There are a number of ways to implement PWAs. One popular approach is to use a PWA framework, such as Next.js or Nuxt.js. These frameworks provide a number of features that make it easy to develop and deploy PWAs.
Another approach is to implement PWAs manually. This requires more technical knowledge, but it gives you more control over the look and feel of your app.
Single-Page Applications (SPAs)
SPAs are a type of web application that loads a single HTML page and then dynamically updates that page as the user interacts with it. SPAs are becoming increasingly popular because they offer a number of advantages over traditional multi-page web applications.
First, SPAs are faster, as they don't have to reload the entire page each time the user navigates to a new page. Second, SPAs are more responsive, as they can update the page in real-time as the user interacts with it. Third, SPAs can be more engaging, as they can provide a more seamless user experience.
How to implement SPAs:
There are a number of ways to implement SPAs. One popular approach is to use a JavaScript framework, such as React, Vue.js, or Svelte.js. These frameworks provide a number of features that make it easy to develop and deploy SPAs.
Another approach is to implement SPAs manually. This requires more technical knowledge, but it gives you more control over the look and feel of your app.
Serverless Architecture
Serverless architecture is a cloud computing execution model where the cloud provider dynamically manages the serverless resources. In a serverless architecture, the developer does not have to provision or manage any servers. Instead, the cloud provider automatically provisions and manages the servers based on the application's needs.
Serverless architecture is becoming increasingly popular because it offers a number of advantages over traditional server-based architectures:
Serverless architecture is more cost-effective, as you only pay for the resources that you use.
Serverless architecture is more scalable, as the cloud provider can automatically scale your application up or down based on demand.
Serverless architecture is more reliable, as the cloud provider takes care of all the server maintenance and management tasks.
How to implement serverless architecture:
There are a number of ways to implement serverless architecture. One popular approach is to use a cloud computing platform, such as AWS Lambda or Google Cloud Functions. These platforms provide a number of features that make it easy to develop and deploy serverless applications.
Another approach is to implement serverless architecture manually. This requires more technical knowledge, but it gives you more control over the look and feel of your app.
Artificial Intelligence (AI) and Machine Learning (ML)
AI and ML are two of the most transformative technologies of our time. AI is the ability of a machine to simulate human intelligence. At the same time, ML is the ability of a machine to learn from data without being explicitly programmed.
AI and ML are being used in a wide range of industries, including web development. For example, AI and ML can be used to:
Improve the performance and scalability of websites and web applications.
Personalize the user experience.
Develop new and innovative features.
Detect and prevent fraud.
How to implement AI and ML in web development:
There are a number of ways to implement AI and ML in web development. One popular approach is to use a cloud computing platform, such as AWS AI Services or Google Cloud.
Chatbots and Virtual Assistants
Tumblr media
Chatbots and virtual assistants are computer programs that can simulate conversations with humans. Chatbots are typically used for customer service applications, while virtual assistants are typically used for productivity applications.
Chatbots and virtual assistants are becoming increasingly popular because they can provide a number of advantages over traditional customer service and productivity solutions:
Chatbots and virtual assistants can be available 24/7.
Chatbots and virtual assistants can handle multiple conversations simultaneously.
Chatbots and virtual assistants can be personalized to meet the individual needs of each user.
How to implement chatbots and virtual assistants:
There are a number of ways to implement chatbots and virtual assistants. One popular approach is to use a cloud computing platform, such as AWS Lex or Google Dialogflow. These platforms provide a number of features that make it easy to develop and deploy chatbots and virtual assistants.
Another approach is to implement chatbots and virtual assistants manually. This requires more technical knowledge, but it gives you more control over the look and feel of your chatbot or virtual assistant.
WebAssembly
WebAssembly is a binary format that allows developers to run code written in languages such as C, C++, and Rust in the web browser. WebAssembly is still under development, but it has the potential to revolutionize the web development landscape.
WebAssembly offers a number of advantages over traditional web development technologies, such as JavaScript:
WebAssembly code is faster, as it is compiled into native machine code.
WebAssembly code is more secure, as it is sandboxed from the rest of the web page.
WebAssembly code is more portable, as it can run on any device with a web browser.
How to implement WebAssembly:
There are a number of ways to implement WebAssembly. One popular approach is to use a WebAssembly framework, such as AssemblyScript or Blazor. These frameworks provide a number of features that make it easy to develop and deploy WebAssembly applications.
Another approach is to implement WebAssembly manually. This requires more technical knowledge, but it gives you more control over the look and feel of your application.
JavaScript Frameworks
JavaScript frameworks are software libraries that provide a number of features that make it easier to develop JavaScript applications. JavaScript frameworks are becoming increasingly popular because they can help developers write more efficient, scalable, and maintainable code.
Some of the most popular JavaScript frameworks include:
React
Vue.js
Svelte.js
Angular
Ember.js
How to choose a JavaScript framework:
There is no one-size-fits-all answer to the question of which JavaScript framework to choose. The best framework for you will depend on your specific needs and requirements.
Here are a few factors to consider when choosing a JavaScript framework:
Learning curve: How easy is the framework to learn?
Performance: How fast is the framework?
Scalability: How well does the framework scale?
Features: What features does the framework offer?
Community: Does the framework have a large and active community?
Responsive Design
Responsive design is a web design approach that makes websites look good and function well on all devices, from desktop computers to smartphones. Responsive design is important because more and more people are using their smartphones and tablets to access the web.
How to implement responsive design:
There are a number of ways to implement responsive design. One popular approach is to use a responsive CSS framework, such as Bootstrap or Foundation. These frameworks provide a number of features that make it easy to create responsive websites.
Another approach is to implement responsive design manually. This requires more technical knowledge, but it gives you more control over the look and feel of your website.
Cloud-Based Development and Deployment
Cloud-based development and deployment is a software development and deployment model where the software is developed and deployed on a cloud computing platform. Cloud-based development and deployment is becoming increasingly popular because it offers a number of advantages over traditional on-premises development and deployment.
First, cloud-based development and deployment are more cost-effective, as you only pay for the resources that you use. Second, cloud-based development and deployment are more scalable, as the cloud computing platform can automatically scale your application up or down based on demand. Third, cloud-based development and deployment are more reliable, as the cloud computing platform takes care of all the server maintenance and management tasks.
How to implement cloud-based development and deployment:
There are a number of ways to implement cloud-based development and deployment. One popular approach is to use a cloud computing platform, such as AWS, Azure, or Google Cloud Platform. These platforms provide a number of features that make it easy to develop and deploy
Cybersecurity
Tumblr media
Cybersecurity is the practice of protecting systems, networks, and data from unauthorized access, use, disclosure, disruption, modification, or destruction. Cybersecurity is important because the web is a target for a wide range of cyberattacks, such as malware infections, data breaches, and phishing attacks.
How to improve the cybersecurity of your website or web application:
There are a number of ways to improve the cybersecurity of your website or web application. Here are a few tips:
Keep your software up to date.
Use strong passwords.
Implement two-factor authentication.
Use a web application firewall (WAF).
Regularly scan your website or web application for vulnerabilities.
Voice Search
Voice search is a search method that allows users to search for information using their voice. Voice search is becoming increasingly popular because it is a more convenient way to search for information, especially on mobile devices.
How to optimize your website or web application for voice search:
There are a number of ways to optimize your website or web application for voice search. Here are a few tips:
Use long-tail keywords.
Use natural language.
Optimize your website or web application for mobile devices.
Use structured data.
Ambient Design
Ambient design is a design approach that focuses on creating user interfaces that are both functional and aesthetically pleasing. Ambient design is important because it can help to create a positive user experience.
How to implement ambient design in your website or web application:
There are a number of ways to implement an ambient design in your website or web application. Here are a few tips:
Use simple and clean designs.
Use high-quality images and videos.
Use white space effectively.
Use responsive design.
WordPress Development
WordPress is a content management system (CMS) that is used to create and manage websites. WordPress is the most popular CMS in the world, powering over 40% of all websites on the internet.
How to get started with WordPress development:
If you are new to WordPress development, there are a number of resources available to help you get started. Here are a few tips:
Choose the right WordPress hosting provider.
Install WordPress on your web server.
Choose a WordPress theme and plugins.
Start creating content for your website.
Ready to take your web development to the next level? 
Danip Technologies offers custom web development services that can help you create a website that is both modern and user-friendly. We have a team of experienced developers who can create a website that meets your specific needs and requirements, and we offer a variety of other services, such as SEO and digital marketing, to help you get the most out of your website.
Conclusion
These are just a few of the top web development trends for 2023. The web development industry is constantly evolving, and it can be difficult to keep up with the latest trends. However, it is important to stay informed, as new technologies and best practices can help you to create better websites and web applications.
When choosing which trends to implement, it is important to consider your specific needs and requirements. There is no one-size-fits-all answer, as the best trends for you will depend on your specific project.
0 notes
creolestudios · 1 year
Text
ReactJS with Django: Why It's a Winning Combination for Developers: Find out why ReactJS paired with Django is the developer's choice. Explore the incredible benefits, seamless integration, and endless possibilities of this tech stack.
0 notes
Link
The Evolution of Web Applications: Embracing Single-Page Applications (SPA)
Web applications have come a long way since their inception, evolving to meet the changing needs of users and advancements in technology. One significant milestone in this evolution is the rise of Single-Page Applications (SPA). In this article, we will explore the role of SPAs in the evolution of web applications, their benefits, and their impact on user experience.
0 notes
aphonicsolutions · 1 year
Text
Top Web Design & Development Trends in 2024
Aphonic Solutions provide web design & development latest marketing trends and information. There are many marketing solutions and methods each is different and unique. here we share Top web design and development trends to look up to progressive web apps, accelerated mobile pages, single-page applications, and motion UI. Check the best web development company in India!
Tumblr media
0 notes
webgangesseo · 1 year
Text
Tumblr media
1 note · View note
Text
MERN stack development is a full-stack web development framework that uses MongoDB, Express.js, React, and Node.js to create dynamic and robust web applications. MongoDB is a NoSQL database that stores data in JSON format, while Express.js is a backend web application framework that provides a set of tools for building APIs. React is a frontend JavaScript library for building user interfaces, and Node.js is a server-side runtime environment that allows for JavaScript to be run on the server. Together, these technologies make MERN a powerful and efficient development stack for building modern web applications.
0 notes
lycore · 1 year
Text
What Is Vue.js? The Pros and Cons of Vue.js
🚀 Discover the world of Vue.js! Explore the pros and cons of this progressive #JavaScript framework that's gaining traction in the #webdevelopment community. From flexibility to learning curve, find out if #Vuejs is right for your next project. 💻🌐
Vue.js is an increasingly popular open-source JavaScript framework for building user interfaces (UIs) and single-page applications (SPAs). Developed by former Google engineer Evan You in 2014, Vue.js has quickly gained traction due to its simplicity, flexibility, and scalability. In this two-part series, we’ll explore Vue.js in depth, starting with an overview and examining its pros and cons in…
Tumblr media
View On WordPress
0 notes
techerudite · 2 years
Text
A Single Page Application(SPA) is a web application that doesn't necessitate a page reload while working within a browser. It is also known as an (SPI) single-page interface. SPAs have evolved from simple static pages to dynamic pages filled with interactive elements. Visit The Article & Read More.
0 notes
rkbokul1 · 2 years
Text
I will be your react, redux or next js frontend, developer
Hi, my name is R. K Bokul. With more than 3 years of experience in web design and development sectors, I am a professional front-end developer using React, Redux or Next JS
See More
0 notes
gazorninplat · 6 months
Text
As much as I love Disco Elysium, I think I was not prepared for Sacred and Terrible Air. Of course, I was expecting to know more about the world of Elysium as a whole, and Robert Kurvitz is a very good writer, but the thesis of the novel (and how it makes its points) flash-banged me.
Disco Elysium this is not, and it wasn’t supposed to be, but I think I can understand better now what the team at ZA/UM was getting at with this specific setting, and these specific narrative angles. Kinda messy, because it’s been a week since I finished it, but here are some things I’d like to highlight: 
1. The pedophilia. I surely wasn’t expecting this to be such a central theme of the novel, but a lot of its main points revolve around it. The most interesting use of this, as a narrative device, is how the girlfriend of Jesper basically accuses him of being a pedophile because he cannot relate to the adults around him. He’s still obsessed with a girl he met when he was 13 years old, and fetishizes a scrunchie he stole from her bag two decades ago. Yeah, I guess Jesper, well into his thirties, is still in love with a 13 year old girl. His girlfriend is almost half his age, and they started dating when she was 15 years old and a lingerie model (!). Zigi mentions how pedophilia was a bougie disease, and well… That idea went right into my thought cabinet (I call it “Bougie Babies for Sale).
Still processing it.
Now, let’s go back to the rest of the main characters. With all this in mind, a pedophilic overtone covers their interest in these four missing girls, but Jasper is the only one who acts on it, sort of. Khan remains in a sort of arrested development (he still uses a shirt he had when he was 13), foregoing normal adult relationships, and Tereesz joins the police as an investigator with the idea of still finding them some day (essentially letting these eternally prepubescent girls define his entire existence), leading him to a very dark path. I wonder if the brutality they afford to the “actual” pedophiles in the story (Vidkun Hird and the Linoleum Salesman) comes from the realization that they are not that different?
2. Obviously, though, this fetishization of the Lund sisters is also a fetishization of the past. The novel states it in the first few pages; they disappeared twenty years ago, in a time that most conservative people remember as the “good old days”. Basically their version of the American Fifties. Now, being obsessed with the past is a running theme in both SaTA and DE, but the angle here is different.
I already said it: the past is not remembered, is fetishized with an almost sexual yearning by a lot of the male characters of the book. They want to be consumed by it (and lucky them! It will) and do nothing more than serve it. It reminds me of a poem by Yamil Nardil Sadek, which, translated to the best of my ability, goes like: 
She awaits me
sitting on the bed,
wearing leather,
and armed to the teeth,
the Memory.
Yeah, that sums up Sacred and Terrible Air pretty well. Everyone is being consumed by the past, bite by bite, and enjoying it. Vidkun Hird, by the mythologized version of his tribe’s history; Sarjan Ambartsumjan, by a miniature ship model that requires constant, devoted thought or else it will disappear, the three main characters by the memory of that summer with the Lund girls. Even the Linoleum Salesman is being haunted and consumed, of sorts, by his sickness and dementia that only sometimes let him take a peek of the past. Beyond that, there are very few characters that do not spend time being followed by relentless ghosts. Literally, in the case of Zigi. Which brings me to…
3. The Pale. It was a really cool concept in Disco Elysium, and it’s an existential nightmare in Sacred and Terrible Air. It always was, really. But here it lets you take a look into it in a way that’s applicable in real life. The Pale is a metaphor for many things, but actually for a single one: A world where our current Capitalist reality facilitates both apathy and yearning for better days, often idealized in our collective pasts.
My favorite scene, one that was incredibly puzzling but so obvious in retrospect, is a beautiful speech by the ghost (?) of Ignus Nilsen to Zigi. I will just paste it here:
“I said terrible things, yes! I stood on a white horse, in a blizzard, and gave speeches. In the mountains, on the construction site… I swung my sword, with silver sunbeams on the hilt. And all around me fluttered white flags, crests of crowned horns made with silver thread, a pentagon between the prongs of the horns, the branches raised to heaven. Everyone who came here with me became happy, Zigi! Communism is powerful! Believe in Communism, it’s a burst of enthusiasm! I promise! It’s beautiful when you believe in a person, but without it…!”
“Without it, there is nothing.”
“Nothing. It was a blizzard, but it was bright, it was morning. Communism is white, it sparkles! Communism is the morning, it is a jubilation!” 
The Pale begins to recede dangerously around the entroponaut.
The fucking Pale recedes with talk of Communism! At first it might appear a little heavy handed (yeah, Communism, by itself, could save the world). But then I got into how Communism could be a solution to the antipathy and chronic nostalgia that sustain Capitalism, and then it hit me. Nilsen, a literal ghost from the past, is talking about a future that could have been. That he wanted to accomplish. That people, probably, can still achieve. The Pale is not eternal, it can be pushed back. Because the Pale seems to subsist on the past, it abhors any talk of the future. A better future. That’s how we solve things, and for a central thesis, is not bad at all.
With that being said, and because I’m just rambling here while pretending I’m working, there are also some things that I just didn’t understand, but maybe it was because of the translation. The original novel is written in a very poetic style, and some of that is still here, but I still need to untangle…
1. The Man. It is said that the day the Lund girls disappeared, they were joined by a mysterious Man that nobody seemed to remember correctly. A character even suspects that she was remembering wrong. Now, the Pale erases people and memories retroactively, so maybe it had something to do with it, but… Who was that? Is there any theory about that Man, or I just missed something? Some scenes and narrations were tough to parse for me (my primary language is not English).
2. Was Malin Lund pregnant? That flash with the fetus was sudden and weird.
3. What was the significance of the three meat piroshkis? They mention that it was unusual that the girls bought them (and if you do the math, you can realize early on that they were not planning to get back home. That purchase didn’t leave them enough money for the bus fare back), but that’s it. Were they for the Man? Also, the narration mentions that Lund girls’ picnic basket contained “the kind of things girls like to eat”, so maybe they were planning to see the boys and bring them the kind of things boys eat? I’m overthinking that? The chapter actually titled “Three Meat Piroshkis” just left me even more confused.
4. I don’t understand how Khan’s pen works at all. The one he brought to the school reunion. That was the part I re-read the most. Anyway, even with that, I loved Sacred and Terrible Air. Definitely one of the most enthralling reads I had, with or without the background of Disco Elysium. I’d still like an official translation that could potentially solve the issues I had, but for now, a Top 10 Book for me.
Go for it now.
309 notes · View notes
pawborough · 3 months
Text
Tumblr media
Below the cut is our extensive FAQ! If you have a question, check here first!
Tumblr media
How long has PawBorough been in development?
PawBorough has been in development since the summer of 2021.
When will PawBorough be playable?
PawBorough will enter closed Beta for Kickstarter backers this summer of 2024. Open Beta will proceed to allow entry of non-backer users afterwards.  Our current timeline projects either a full launch in 2024, or an extended period of open Beta for new users to join in 2024, depending on how many features need tweaking and to what extent. No matter what, expect open playability in 2024! 
Will PawBorough be free to play? Yes. PawBorough will have premium features, but will not be “pay to play.” 
Where do I download PawBorough?
PawBorough is a browser game with no need for download. However, we are working on an application for mobile devices which will be available to download in the future. There is not currently a timeline for this development. 
Will PawBorough be mobile friendly?
Yes. We are dedicated to mobile usability. Our development of an application is intended to enhance the mobile experience. 
Will you have a suggestions page?
Once we have the game refined and populated, we will be opening a forum for suggestions to improve the user experience. 
Is PawBorough accepting artist applications?
Currently PawBorough is accepting artist applications. If you would like to work as a visual artist on The PawBorough Team, please send your resume and portfolio to [email protected]
Is PawBorough accepting developer applications?
PawBorough is not in need of developers at this time. 
Can I volunteer for PawBorough work?
For the majority of work, we do not accept volunteer applications. We periodically open volunteer applications for early feature testing. For notifications on when these applications open, keep up with our Kickstarter updates!
What timezone will PawBorough be in? 
PawBorough will function in EST/ET! 
How can I reach out directly to the team?
Please email us at [email protected]. All other methods to contact us may not reach us. 
Will you keep the official Discord open after the full launch of PawBorough?
No. After PawBorough launches officially, we will be shutting down our Discord. It is not in our best interest to rely on third party software for communication with our community. Already, this is an issue we take responsibility for perpetuating. We want to ensure all information is sourced to and on our website in a single space. Players are welcome to create their own, unofficial spaces however! 
How can I support the development of PawBorough right now?
We take donations from our PayPal. All donations will go towards our continued development.  You can also support us by spreading the word! Tell your friends about our project, keep informed on our updates, and join the site when we’re live!
Will you have dark mode?
Yes. 
Tumblr media
Will there be more breeds/patterns?
PawBorough will continue to add more content over the span of its lifetime.  We have currently committed to 21 breeds in total, but new patterns may be added in perpetuity as the game ages. 
Can cats die? Is there a way to remove them from the game?
Cats do not die from play. The only way to remove a cat from the game is to voluntarily retire the cat. 
What are mystic and domestic breeds? 
PawBorough features seven Boroughs that a player may join. A Borough is a culturally unique location in the world of the game. Each Borough has at least two breeds of origin: a domestic breed and a mystic breed. These breeds come in “pairs.” For every domestic cat, there is a mystical, magical counterpart. We call these pairs an “origin set” or “origin pair.”  In lore, this is explained as normal cat breeds being magically, genetically altered over hundreds of years. As a player, you will be able to switch between mystic and domestic breeds instantly. 
What are the mystic and domestic pairs? What are the origin Boroughs of every breed?
Here are all origin pairs that we have showcased in updates thus far.  Shorthair / Bovine = Harvest Prowler / Thumper = Harvest Ragdoll / Fyret = The Metropolis Longhair / Moontail = Luna Snowfoot / Prancer = Sol Wolf / ??? = Cogwheel Littlefang / Stonehide = ???
Can Domestic Breeds be turned into Mystic Breeds (and vice versa)?
Yes. Here is a graphic of the system we are testing, which incorporates Borough origin: 
Tumblr media
Why not just have separate items for every breed? Why the pairs?
This choice was intended to unilaterally flatten the rarity between mystic and domestic breeds, and instead determine rarity by origin set. With an item for every breed, seeding the items would inevitably become imbalanced in some way. This way, Shorthair and Bovines, for example, are equal opportunity for the player.  We did not want to, as a game, incentivize collecting mystic breeds over domestic breeds, thus viewing domestic breeds as a contextually “lesser” option. That has just never been our vision! 
Will some Breeds/Patterns/Colors be more rare than others?
Yes.  Breed rarity will be dependent on the origin pair. Bovines and Shorthairs may be more common than Longhairs and Moontails, for example.  Patterns will have breed and drop rarity.  Colors will be dependent on breeding outcomes. You may use our live kit predictor on our website to view how two colors interact. A brief write-up on how color outcomes for kits are calculated is located here!
How much can you customize your two Founder cats?
You will be able to fully customize the colors and sex of your Founders. You will also be able to select from a pre-selected pool of patterns and breeds, which will be changeable for all cats via items. We are currently working on adding the ability to fully customize white coverage for Founders. The only thing you will not be able to change is the Borough birthplace (eye color.)  We are also considering adding the ability to freely re-access the creator and change your founders at any time. As a general note, your Founders will be incredibly customizable! 
Will kits be able to wear accessories?
Yes! We love that we can do this! This does mean our accessory pool will be more limited. However, kits will be fully customizable!
How will players obtain "Generation 1" cats?
Generation 1 cats are cats which are not born from cats already on the site (i.e “offspring.”) There are several methods to obtain a generation 1 cat, however most notably an item called “incense” can be used to immediately spawn a random generation 1 cat into your camp.  Each Borough will have an incense item which spawns a cat with the eyes of said Borough.  Incense is obtained via crafting. 
Will new colors be added to the demo?
Currently, there are no plans to add new colors, but this possibility is not off the table. 
Will you have feathers behind the ear as an accessory?
No. We are aware that, historically, media with anthropomorphized cats has a history of anti-indigenous themes.  In the interest of respecting indigenous populations, we will not be illustrating any feather-themed accessories without indigenous sensitivity consultation.
Will I be able to attach tags to my cats? Such as #kit?
Yes, we will be implementing a tagging system! 
Will multiple cats be able to have the same species of Fauna companion?
Yes! 
Will there be a way to make my cat stay as a kit forever?
Yes. We will be adding perma-kits as a feature. 
Can you add a nonbinary/third gender pose to the cats?
We would love to, but we’re a small indie team with limited resources. Three poses with full accessory and pattern functionality is already quite a bit of effort for us, especially with the demand of the art style we are committed to!  However, we consider the Mars and Venus poses to be, for all intents and purposes, genderless. The purpose of two adult poses is simply to explore the designs. You will be able to switch between both adult poses at any time via a switch on the cat’s customize page. 
Will there be a pronouns section for a cat's page?
We were asked to add this feature quite a bit, and we did add it! We are currently testing a system which may allow custom pronouns (such as neopronouns) that the game will recognize and use in narration and dialogue. This will help aid our initial reservation to the concept. 
Will there be a way to change a cat's eye type?
Yes, and eye palette too! The only thing you cannot change is the birth Borough (Borough eye color.)
What's the difference between an Accessory and Decor item?
Accessories are pieces of clothing tailored to layer on each cat pose. They cannot be moved from where they sit on the cat. They can only be shifted above or below other Accessories layered onto the cat.  In comparison, Decor items are items which can be shifted, rotated, and resized around the cat. Decor and Backdrop items come together to create a scene! 
Can we change a cat's birth Borough/eye color?
No.  
To what extent will you feature violence or adult content?
PawBorough is for teens and older. Users must be 13 and up to play. This means that we will feature minor use of moderately strong language, mentions of alcohol, and the allowance of art with cartoon blood and violence.  However, photorealistic blood or gore will not be allowed, and we allow absolutely no sexually suggestive content whatsoever. 
Will you have a custom system? How will it work?
This question refers to the concept of allowing custom, user-uploaded art to be created into items and imposed over a cat.  Yes, we will have a system for this. Our custom cat items are called “pelts.”  “Unclipped pelts” will allow for users to draw over the lines of the cat.  “Clipped pelts” will go under the lines of a cat, and be easier to work with Accessories.  Both will be a premium feature, and come with limitations and restrictions to help maintain the visual identity of the game. We will also be implementing a less complex pelt system for Fauna! 
Will you have breeds that resemble big cats?
We will not be featuring any breeds from the Panthera order. This includes lions, jaguars, leopards, tigers, and snow leopards. We also will not be adding cheetahs, due to their cultural association with big cats. In the lore of PawBorough, big cats (and cheetahs) are mythical depictions akin to humans imagining elves!  All other breeds from the Felidae family are on the table. This does include wildcats. 
Will you add more white coverage possibilities?
Uncertain at this time. The idea is on the table, however we’re currently focused on illustrating for all the planned breeds! 
Do you have a “basic” pattern?
No. We do have a pattern called “solid” that may aesthetically resemble a more basic patterning, but we do not have a base-level pattern that users build up from. Instead, all patterns have some degree of rarity and detail. 
Is there a way to change a cat's colors?
Yes. Users will have access to items which randomize a single cat’s colors. 
Can I rename my cats?
Yes! Much like changing the pose, renaming a cat is able to be done anytime via the customization page. 
How will line breaking accents be handled? Won't they clash with apparel?
For those who are unaware, PawBorough features accent genes which may break the silhouette.  The answer to this is: yes, they will! We deliberated over this for some time. However, we are treating line-breaking accents much like other accessories. It will be on the onus of the player to prevent clipping with any other accessories, just as accessories can and will clip with one another.  Line breaking accents will be layerable among accessories, so users can adjust the layering how they like.  From a design standpoint, line-breaking accents will only include biological body modifications. This includes, but is not limited to, horns, teeth, scales, claws, fur, and anything else which would grow from the cat itself. This therefore excludes these attributes from accessories.  Overgrowth is an exception to this rule, due to its inception before the restriction was in place. In lore, Overgrowth is explained as a benign, parasitic, magic-touched plant which lives in cat fur and is easily passed to children of infected parents while nesting. 
Can accents be in any slot? Can I have the same accent in both slots?
All accent genes can be in either slot! However, you may not have the same accent in both slots. Both slots are able to lack an accent at the same time, however. 
What are the default patterns and breeds I can pick for my Founders?
You may create your Founders starting with: Solid Tiger Tuxedo Blotches This list is subject to change. No accent genes will be available for Founders to start with. 
Tumblr media
How does breeding work?
Breeding is available between two compatible cats. Users will choose to start a nest with two cats. Users will then babysit the nest until the new kits are ready to enter the User’s camp. Kits will inherit colors and patterns based on the parents. Testing of this mechanic is available on our website!
Can players cancel unwanted nests? Is it possible to accidentally lose a nest?
Nests can be reversed via a Bitter Root item. This is an active choice that the player must click several times to confirm.  Otherwise, nests remain until the player interacts with them and do not expire. 
Can Domestic and Mystic Breeds produce offspring?
Yes! All cats can breed with one another. 
How will Paw Borough prevent inbreeding regarding the cats?
Currently, cats which are related via 5 generations apart cannot breed together. 
Will cats ever be too old to breed?
We have no intention for a feature like this at this time. 
Can cats have multiple mates?
Yes. 
How does white coverage work for breeding?
Random coverage spots are chosen for each kit, with dominant spots passed down and recessive spots having a lower chance of showing. The coverage amount is chosen via the algorithm below. none x none => 90% none, 10% low full x none => 5% full, 10% high, 50% medium, 20% low, 5% none full x full => 90% full, 10% high full x medium => 50% full, 10% high, 40% medium full x high => 90% full, 10% high full x low => 25% full, 25% high, 25% medium, 25% small medium x medium => 5% full, 10% high, 50% medium, 20% low, 5% chance of none high x high => 15% full, 20% medium, 65% high, 10% low high x none => 30% none, 30% high, 25% medium, 15% small high x medium => 10% full, 10% small, 40% high, 40% medium high x low => 60% small, 20% medium, 20% high
How many cats are in a litter?
This is subject to change, but a cat can have between 1-4 kits in a single litter. 
Can I breed my cats to have different eye colors than my borough?
Yes. 
Can I breed my cats with other users?
Yes! We have a system for cross-account nests which will allow two users to both care for a nest and then divide the kits. 
Tumblr media
Is there a cap on how much regular currency a player can obtain every day?
There will likely be a cap, but questions like these have become difficult to give concrete answers on until we can simulate the economy in closed Beta!
Will there be events during the game?
Yes! PawBorough will have an onsite story which will be told through events, in addition to holiday events which will give users seasonal item rotations. 
If I miss story events, how can I catch up?
All real-time story events will be documented in an onsite archive which users can visit and read at any time. Campaign events which surround Guild play will be re-playable, which new users can play at any time. 
Will the game have achievements?
Yes. PawBorough will feature a badge and reward system. 
Will there be side/minigames?
At this time, we are focused on a closed gameplay loop which is fun, satisfying, and rewarding without the need for an abundance of generalized minigame designs. We may incorporate unique, one-off minigames for immersion in the future. But it is our hope that they won’t be necessary for an enjoyable game. We would much rather focus our resources towards buffing out the gameplay loop, and accommodating several play styles with it! 
Are there any plans for a battling system for cats?
Yes! PawBorough will feature teams which may register at the Guild. Users will be able to go on missions with their cats and earn rewards, leveling up their team and earning exclusive items in the process. What stats does a cat have? What are they used for?
Cats feature seven statistics: Stamina, Strength, Sense, Smarts, Speed, Savvy, and Sorcery.  A cat's base stat number is divided among these categories. Leveling a cat up will allow the player to build out any given statistical category. Statistics are used for different dynamics in combat (mele, range, healing, dodging, etc.) as well as helping to calculate different daily item yields. Cats can be leveled up both by participating in Guild play and by yielding items.  Each cat also has a Fortune and Doom statistic, which affects good luck and bad luck in RNG and general combat. These two stats cannot be changed. 
Are base stats completely randomized?
Yes, but there is a cap and a weighted bell curve. All Founders start with the same base stat. 
Can I read official lore of the game?
As of right now, we are working on an updated lore page with a more interactive presentation and more meat than our previous iteration. We will notify all social media when we have a new page live. 
How will recolors of accessories work?
PawBorough features a dye system. All items will come in 12 standard colors and may be dyed to any of the 12 colors. Dyes are obtained via crafting.  “Special dyes,” as they are currently called, will feature more unique coloring from the standard item, such as holographic, polka-dot, or pastel. Special dyes will only be applicable to certain compatible items. (And in all cases, a special dye will only work on an item that the standard doesn’t already apply to. For example, if a shirt is polka-dot by default, there is no reason for the shirt to be compatible with the polka-dot special dye.) 
Tumblr media
Can I be an Alpha tester? Is Alpha open? 
Alpha applications are available here. If this form is closed, it means applications are no longer accepted.  Alpha is not open as of June 12th, 2024. We will keep active communication and announce when Alpha opens. Applicants who are chosen will receive emails with the appropriate steps. 
If I am chosen as an alpha tester, do I have to sign an NDA?
No. 
How will data wipes happen during the closed Beta?
For context, a data wipe consists of removal of all cats, items, currency, and user content.  A data wipe will NOT wipe the following:  Your account, including your username, credentials, and ID number.  Credit for any money previously spent on your account.  Closed Beta will feature at least one data wipe as the test comes to a close. However, closed Beta will feature as many data wipes as we the developers deem necessary for testing important game dynamics. As an example, we need to test economic balance, and will wipe as necessary to test new pricing and currency distribution. 
Is there a limit to how many Beta Testers there will be?
Closed Beta is limited to the number of Beta Keys sold on our Kickstarter. Population reports put this number at over 1600 keys. 
How much earlier do Early Bird tier codes get into the closed Beta?
Early bird codes allow 3 days of early access! 
Will Luna Stones be tradeable or will they be locked to your account?
All Kickstarter items will be tradeable. 
Are Moontail wings randomly chosen when using a Luna Stone on a cat? What about when you breed a Moontail?
Wing types are random when using a Luna Stone. To change a Moontail’s wing type, an item will be easily available. When breeding, the wing type of the parent will pass down. 
I am a backer. How will I receive my Kickstarter rewards?
With the email you used to back, you will be emailed a code for your beta key(s) and a reward code which will be redeemable onsite for your tier rewards/add-ons. Can I still pledge to the Kickstarter?
No. 
Are the Kickstarter items obtainable since the campaign ended?
No, and yes. We will not be distributing these items again. They are retired. However, when the site is live, you may trade with backers for Kickstarter items. 
Will I lose my Kickstarter rewards after a Beta wipe?
Any redeemable item codes will become redeemable again after a data wipe. 
Account 
Can two or more people share an account?
No. We limit the game to one account per user. If you are caught sharing your account with another person, you may have your account frozen. All items you may lose by choosing to share your account are at your own risk. 
Can system members have individual accounts?
When we say one account per User, we mean User. This means that systems with individual users may have separate accounts. However, any evidence of “funneling,” daily yield transfer, or frequent and egregious transfer of cats or resources which would give a User identifiable advantage over other Users will result in consequences, including but not limited to removal of the aforementioned resources and termination of one or both accounts. 
Can you change your Borough after choosing one at signup?
Yes! 
Can you change your username? Will multiple people be allowed to have the same username?
Your username will be changeable. No two accounts may share a username. 
Am I allowed to have a "side" account?
Accounts are limited to one per user. Evidence of frequent cross-account trading which implies the existence of a side account will result in investigation and consequence. 
What is the character limit on usernames?
18. It is the same for cat names. 
Will I get my account banned if a housemate and I both play PawBorough, and you recognize the same IP address?
No. In fact, we are rather lenient and understanding of this. We only will take administrative action if the cross-account activity is egregiously imbalanced and rewards one player with a clear, identifiable advantage over other players. 
Can players terminate their own account?
Yes. 
How many accounts will be reserved for staff use?
The first 10 account IDs will be reserved for staff use. This number may be subject to change. 
Is there a referral system? Are there any rewards for referring people?
We are developing a referral system in tandem with our badge system. Our system will reward referring players with a payout every time their referee(s) completes an achievement and earns a badge. 
Tumblr media
Can I use a cat I made in PawBorough as an original character / purchase commissioned art of this character?
Yes, we love it! However, no content featuring our doll art may be used commercially. You may not profit off of our exact images. We also require that any public use of our art or designs be credited back to our website.
Can I use cats in offsite roleplay? Do I need to give credit? Can I go make my own story out of my PawBorough characters?
Yes. Credit requirement largely depends. If you use an image from the site, you must credit us. If you’re using a mystic design of ours, those creature designs are owned by us. We would prefer if you did not completely divorce them from our game and give us credit for the creature design. Under no circumstances may you use any mystic designs in commercial content.  However, we don’t own the concept of a generic cat character. If you create and name a domestic cat in our game, you’re welcome to take it elsewhere and do anything you damn well please with it! Again, so long as you credit any use of our images, and use none of our images commercially!  Also, for clarity, we don’t own the concept of moth cats or cow cats, but our specific design elements in tandem with the breed titles are attributed to us. You’re totally free to make a moth cat design for your own use! 
Are we allowed to trade art for beta keys with other users?
Yes.
Is offsite trading allowed?
For beta keys, yes, but at your own risk. Note that many games of our genre disallow cross-site trading with games in development, or altogether. We do not allow nor endorse disregarding the TOS of other games.  We are considering an embargo on cross-site trading of cats, items, and site currency both during Beta and for a brief initial launch period. This is to help preserve the microcosm of our onsite economy and grow it to a healthy, prosperous size before introducing the possibility of cross-site scalping. We hope you understand this decision. We’ll keep forefront communication with Users on these policies during the game’s lifespan. 
Can I sell my Kickstarter rewards for real-life currency?
No. This will never be allowed. 
Can I trade my Kickstarter rewards for digital or physical art?
Yes. Art as a traded good would not be counted under the cross-site embargo. If any cross-site content is included in conditions of the trade, it would be considered illegal. 
Will there be a safe way to exchange premium currency for regular currency with other players?
Two-step cross-account trading will be in place. Both players will have to approve a supposed trade before it will activate. 
47 notes · View notes
darkstarofchaos · 8 months
Note
For the character ask game, I'm not sure how many numbers you're willing to do for a single ask, so you can just do as much as you want from this. For Prowl - 2, 3, 7, 8, 12, 15, 16, 23, 25
I don't mind a bunch of numbers! Gives me an excuse to ramble, lol. And to rant, because Prowl deserves better.
2: Favorite canon thing about this character?
His willingness to look Optimus in the face and tell him he's being stupid, and to do his own thing to mitigate the stupidity if he has to. Mostly applicable to IDW, but Optimus needs a foil so badly in G1 that I've pretty much transplanted it into G1 Prowl when I write him. Not in its entirety, because G1 Prowl isn't IDW Prowl, but I like that he has his own opinions on tactics and morality and doesn't just go with the Autobot collective. His job is not to be a yes-mech; it's to keep people alive and win battles. If his commander is making stupid decisions, what benefit is there in standing back and letting it happen?
3. Least favorite canon thing about this character?
Making the police car an actual cop was the most boring decision anyone could have made. In stories where the Cybertronians choose their alts, especially, there are so many more interesting things you could say about his character by giving him a pre-war job that's completely unrelated to his Earth alt. For example, I like to think he chose it for tactical reasons: it's a common black and white vehicle, thus perfect as a disguise, and the sirens let him "legally" break Earth traffic laws in an emergency. It's far more interesting if his alt is a result of strategy and reasoning instead of, "I guess I'll take the one that matches my old job description."
7. What's something the fandom does when it comes to this character that you like?
I like that people took the little tidbit about Prowl having trouble with the unexpected that has exclusively appeared in two bios (that I'm aware of) and made it reasonably common. Would be really nice if they treated it seriously instead of making it comic relief, but maybe it does get treated more seriously these days. I don't read a lot of Prowl fic.
Let's talk about why.
8. What's something the fandom does when it comes to this character that you despise?
The image compilations of Prowl getting punched. The prick jokes that litter every TF Wiki page for every G1-based Prowl. The fanfics where Prowl is an uncompromising jerk or straight-up hate sink because the author needed a mean Autobot. The conversations and hypotheticals that make Prowl the source of any amoral action the Autobots take. The people who distill him down into Essence of Asshole and strip out every positive or sympathetic quality he has.
"Prowl gets villainized for being sensible" is one of my most hated fanfic tropes. Grab just about any fic where a Decepticon defects or earns the Autobots' sympathy in some way, and Prowl will be the only one who's unhappy with the situation. Which is perfectly reasonable because that is an enemy and he has no reason to trust them, let alone like them. But because we're supposed to sympathize with the Decepticon, that makes Prowl the villain. The other Autobots aren't naive and unreasonably forgiving, Prowl is just a bad person.
And it's not just IDW fics. G1 Prowl didn't get a whole lot of screen time, and thus no chance to develop his own personality, so he gets slapped with the same portrayal. Never mind the fact that when he does show up, he's one of the nicest characters - sure, he gets in on trash talking the Decepticons (though far less than some of the Autobots), but he's always helping out around base, shows concern for others, and pretty much stays out of interpersonal conflict. And yet, in stories based on a cartoon that has Powerglide, Gears, Cliffjumper, and Optimus Prime himself, I am expected to believe Prowl is the Autobots' resident jerk. Not gonna happen.
12. What's a headcanon you have for this character?
As I mentioned earlier, it's kind of quasi-canon that Prowl has trouble dealing with the unexpected. It's never appeared in any actual media, but it does come from official sources, so I wouldn't call it a headcanon. But I do headcanon that he has some pretty severe anxiety in dealing with people because of it. Things like math and physics are reliable; if something doesn't do what you expect it to, it's because you lacked information, and you can remedy that. You can update your calculations based on the results you actually got, or try to find out what you were missing the first time. Given enough data, you can predict just about anything as long as the results are consistent.
People are not consistent. You can make some sweeping generalizations about them based on categories - social groups, behaviors, readily obvious personality traits - but you can never say with certainty that someone will react in a specific way to something. Once you've known them for a while, you start to understand them and can anticipate them with a reasonable degree of accuracy, but that's assuming their behavior is genuine and consistent. If they're messing with you or pretending to be something they aren't, your data is inaccurate, and you can't correct it unless you know it's inaccurate.
People are the only things in the natural world that can deliberately give you false data about what to expect from them. So yes, I think Prowl has social anxiety. And probably some form of people-centric agoraphobia or anthropophobia.
(I also headcanon him as biromantic asexual. It has nothing to do with the above, and actually predates the anxiety headcanon).
15. What's your favorite ship for this character? (Doesn't matter if it's canon or not.)
If I had to pick just one pairing, I guess I would say Jazz/Prowl. Which is ironic, because for a long time, it was one of my least favorite Prowl pairings. Not because it was particularly objectionable; it was just everywhere, and I couldn't see it working. I think of Prowl as the kind of person who needs a steady, reliable partner who will let him have his routines and respect his desire to plan things before doing them, and Jazz's thing is more spontaneity and flexibility. He seemed like one of the worst partners for Prowl, especially with how I developed Prowl's disorders over the years.
In the end, though, that spontaneity is what brought them full circle to a pairing I can support. Because I do think Jazz would be willing to compromise and accommodate for Prowl's needs, and that Prowl could eventually trust that he's not going to suddenly change how he acts around him. It's a rather tenuous case of opposites attract, and requires patience from both parties, but I can see it working now.
16. What's your least favorite ship for this character?
First, an honorable mention goes to my immediate impulse, which was Constructicons/Prowl. I get why people want IDW Prowl to have someone on his side, and I don't think the Constructicons meant any harm. But Prowl was forced into the team through a series of traumatic events, the Constructicons like him for things he hates about himself, and being a part of Devastator seems to have contributed to his psychological decline. It wasn't a good or healthy situation for him, and I feel like the Constructicons having romantic feelings for him actually makes it more uncomfortable for me.
That being said, I'm going to have to go with Optimus/Prowl as my absolute least favorite ship. Optimus is very strongly motivated by morality and will generally take what he perceives to be the most moral action in a given situation. Pair that with someone like Prowl, who is willing to cross lines when he feels he has to, and you already have a relationship on rough ground. The only way things can work between them is either for Optimus to accept Prowl's "moral failings", or for Prowl to change a fundamental part of himself. There is literally no option that doesn't require one of them to compromise their principles or change who they are. And since Optimus isn't the kind of person who will do that, the only hope for a relationship is to "fix" Prowl. And that gets into abusive territory, because Optimus has power over Prowl in both the physical sense and in their professional relationship. He also has social power, because because Prowl is unpopular and Optimus is exactly the kind of person you wouldn't expect to be capable of abuse.
And yes. For the sake of argument, it could be toxic from Prowl's side too. He could try to hurt Optimus by throwing his mistakes in his face, or by blaming him for everything that goes wrong. But Optimus has a great deal of confidence in himself and the support of pretty much everyone, while Prowl is isolated and already isn't proud of things he's done. He is far more vulnerable to abuse than Optimus is, socially and psychologically, and he just doesn't deserve that.
23. Favorite picture of this character?
Mmm. I guess I would have to say this one, since it inspired an entire story that I'm still working on. There's actually another one that I like better (which also spawned an in-progress story), but I'd have to do more digging to find the link for that one. Might do it later.
25. What was your first impression of this character? How about now?
When I started watching G1, the Autobots were just a conglomerate of near-identical personalities to me. Prowl was just one of the generic background bots who got a few minutes of screentime in one episode and was otherwise relegated to a support role. I was mildly interested by some of the fanfic portrayals I saw, but I definitely preferred the Decepticons, so I didn't read much where he was a main character unless there were Decepticon MCs too. And most of those fics were written by a couple authors whose endings were consistently disappointing, so after I stopped reading their stuff, Prowl just dropped off my radar.
Nowadays, Prowl is my favorite Autobot (well, second favorite after Skyfire). Thanks to IDW, I kind of see him as the Autobot version of Starscream (narratively if not in personality), but he's also a fascinating character in his own right. I love that he doesn't conform to the Autobots as a whole, he's fun to write and analyze, and he was the one good thing I got out of the IDW comics. 10/10 character, deserves better.
21 notes · View notes
esoxy · 1 year
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