<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <title>GIZ</title> <description>Personal site of @GIZIPP. </description> <link>https://gizipp.com/</link> <atom:link href="https://gizipp.com/feed.xml" rel="self" type="application/rss+xml"/> <pubDate>Thu, 03 Apr 2025 23:44:22 +0000</pubDate> <lastBuildDate>Thu, 03 Apr 2025 23:44:22 +0000</lastBuildDate> <generator>Jekyll v4.0.1</generator> <item> <title>Innovations and Trends in Ruby for 2024 (Soon 2025): What Developers Should Anticipate</title> <description>&lt;p&gt;Ruby 2024 and soon 2025 will be…&lt;/p&gt; &lt;hr /&gt; &lt;p&gt;Ruby has been around for a while, but it continues to surprise developers with its adaptability and charm. As we step into 2024 and as we move into 2025 soon, Ruby isn’t just surviving; it’s thriving. Whether you’re a seasoned Rubyist or just curious about what’s new, here’s what you need to know about the latest innovations and trends in Ruby for the coming year.&lt;/p&gt; &lt;h2 id=&quot;ruby-33-speed-meets-efficiency&quot;&gt;Ruby 3.3: Speed Meets Efficiency&lt;/h2&gt; &lt;p&gt;Ruby’s performance has been a hot topic for years, and with Ruby 3.3 (released late in 2023), speed and efficiency are the name of the game. The language has made leaps in reducing execution times and memory usage, bringing it closer to its “3x faster” goal compared to Ruby 2. This year, developers will feel a noticeable difference, especially in web applications and real-time systems.&lt;/p&gt; &lt;p&gt;One big push has been around the YJIT (Yet Another JIT), which has seen serious improvements. JIT compilation is now faster and more stable, giving Rails developers a smoother experience when scaling applications. So if you haven’t upgraded to Ruby 3.3 yet, it’s time to make the move and enjoy the performance boost.&lt;/p&gt; &lt;h3 id=&quot;2025-insight&quot;&gt;2025 Insight&lt;/h3&gt; &lt;p&gt;Let’s see Ruby 3.4 pushing performance even further. In 2025, Ruby 3.4 is making waves with its continued focus on performance and efficiency.&lt;/p&gt; &lt;h2 id=&quot;hotwire-and-turbo-in-rails-the-full-stack-revolution&quot;&gt;Hotwire and Turbo in Rails: The Full-Stack Revolution&lt;/h2&gt; &lt;p&gt;When it comes to modern web development, Ruby on Rails has always been a major player. But with the introduction of Hotwire and Turbo into Rails, 2024 is all about building responsive, real-time applications without relying heavily on JavaScript. This new approach is making Rails developers rethink how they build user experiences.&lt;/p&gt; &lt;p&gt;Hotwire, which bundles Turbo and Stimulus, allows for fast, interactive pages without the overhead of complex frontend frameworks like React or Vue. The trend this year? More apps powered by Hotwire and Turbo to deliver real-time updates without sacrificing simplicity. Expect to see an uptick in projects that blend the magic of server-rendered HTML with snappy interactions.&lt;/p&gt; &lt;h3 id=&quot;2025-insight-1&quot;&gt;2025 Insight&lt;/h3&gt; &lt;p&gt;As Rails continues to evolve, Hotwire and Turbo remain central to building rich, real-time applications. 2025 sees more developers fully embracing these technologies, as they allow for smooth, interactive experiences without over-relying on JavaScript frameworks.&lt;/p&gt; &lt;p&gt;By 2025, many new Rails projects will be built around this stack, thanks to its simplicity and power. With fewer dependencies on complex frontend frameworks like React or Vue, Rails developers can now ship real-time, full-stack applications more quickly than ever before. Hotwire’s approach is turning Rails into a go-to framework for real-time web apps, and the momentum isn’t slowing down.&lt;/p&gt; &lt;h2 id=&quot;ai-and-machine-learning-with-ruby-gaining-ground&quot;&gt;AI and Machine Learning with Ruby: Gaining Ground&lt;/h2&gt; &lt;p&gt;AI and machine learning have dominated the tech landscape recently, and Ruby is finally catching up. Although Python remains the go-to language for machine learning, the Ruby community is showing more interest in integrating AI features into Ruby applications.&lt;/p&gt; &lt;p&gt;In 2024, we’re likely to see better tools and libraries, like ruby-dnn and TensorFlow.rb, getting traction. These tools bring deep learning capabilities to Ruby. With Ruby’s intuitive syntax and community support, it’s becoming easier for developers to add machine learning features to their apps. Expect more articles, gems, and tutorials focused on Ruby’s AI capabilities in the coming months.&lt;/p&gt; &lt;h3 id=&quot;2025-insight-2&quot;&gt;2025 Insight&lt;/h3&gt; &lt;p&gt;AI in Ruby: Moving from Novelty to Necessity&lt;/p&gt; &lt;p&gt;2025 marks the year when AI and machine learning in Ruby shift from niche experiments to essential components of Ruby applications. While Python remains dominant in the AI space, Ruby has been making steady progress.&lt;/p&gt; &lt;p&gt;New libraries like AI.rb and improved bindings for TensorFlow.rb are empowering Ruby developers to embed AI capabilities directly into their applications. In fact, 2025 might be the year where we see Ruby AI gems mature enough to rival their Python counterparts for common tasks like natural language processing or predictive analytics. For Ruby developers eager to get into AI, 2025 is looking like a good year to dive in.&lt;/p&gt; &lt;h2 id=&quot;security-takes-center-stage&quot;&gt;Security Takes Center Stage&lt;/h2&gt; &lt;p&gt;With an increase in cyber threats, security has become a top priority for developers, and Ruby is no exception. The Ruby community is doubling down on security in 2024, with new gems and best practices to ensure that applications built on Ruby remain safe.&lt;/p&gt; &lt;p&gt;Bridgetown, a static site generator, is gaining popularity for security-conscious developers. It allows you to build fast, secure sites with less risk of attacks like SQL injection or XSS (cross-site scripting). Additionally, Rails 7 has introduced more built-in security features, making it easier for developers to implement secure authentication, encryption, and authorization in their applications. So, if security hasn’t been on your radar, now’s the time to prioritize it.&lt;/p&gt; &lt;h3 id=&quot;2025-insight-3&quot;&gt;2025 Insight&lt;/h3&gt; &lt;p&gt;Security has always been crucial, but with cyber threats increasing in sophistication, 2025 puts security front and center for Ruby developers. As more data-heavy and high-traffic applications are built on Ruby, the need for solid security practices has never been greater.&lt;/p&gt; &lt;p&gt;Tools like Brakeman (a Ruby static analysis tool for security vulnerabilities) have been updated to keep pace with modern threats, and Ruby’s ecosystem is focusing on automated security audits as part of the CI/CD pipeline. Rails 7 and beyond have also introduced more granular security controls, including stricter defaults for secure authentication and session management, making it easier for developers to protect their apps from malicious attacks.&lt;/p&gt; &lt;h2 id=&quot;conclusion-rubys-evolution-continues&quot;&gt;Conclusion: Ruby’s Evolution Continues,&lt;/h2&gt; &lt;p&gt;In 2024, Ruby is evolving in exciting ways, blending speed, efficiency, modern web development techniques, and even AI. Whether you’re building scalable web applications or tinkering with AI features, Ruby offers something for everyone. The introduction of tools like Hotwire and the continuous improvements in performance with Ruby 3.3 ensure that Ruby will remain relevant and loved by developers across the globe.&lt;/p&gt; &lt;h3 id=&quot;2025-insight--ruby-is-ready-for-2025-and-beyond&quot;&gt;2025 Insight : Ruby is Ready for 2025 and Beyond&lt;/h3&gt; &lt;p&gt;As 2025 unfolds, Ruby is evolving in all the right ways. From pushing performance boundaries with Ruby 3.4 to redefining real-time web development with Hotwire, and even stepping into AI territory, the language is far from stagnant. Ruby remains a beloved and increasingly powerful tool for developers across the globe.&lt;/p&gt; &lt;p&gt;With a solid focus on speed, real-time web capabilities, and security, Ruby is ready to tackle the challenges of 2025. Whether you’re building large-scale apps or experimenting with AI, Ruby’s innovations are ensuring it stays relevant and exciting for the years ahead.&lt;/p&gt; &lt;p&gt;As the community grows and innovation continues, Ruby’s future looks bright. So, buckle up, and let’s see where this versatile language takes us in 2024 and soon 2025!&lt;/p&gt; </description> <pubDate>Mon, 09 Sep 2024 00:00:00 +0000</pubDate> <link>https://gizipp.com/ruby-trend-2024-2025</link> <guid isPermaLink="true">https://gizipp.com/ruby-trend-2024-2025</guid> <category>ruby</category> <category>rails</category> <category>software engineering</category> </item> <item> <title>Predictive Analytics in Software Engineering: Enhancing Decision Making with AI</title> <description>&lt;p&gt;The hype of AI replacing Human Software Engineer, even considered making decision for us?&lt;/p&gt; &lt;hr /&gt; &lt;p&gt;Predictive analytics has emerged as a powerful tool across various industries, offering insights that drive better decision-making and strategic planning.&lt;/p&gt; &lt;p&gt;In the realm of software engineering, predictive analytics holds the promise of revolutionizing how projects are managed, code is developed, and products are delivered.&lt;/p&gt; &lt;p&gt;This article delves into the ways predictive analytics can enhance decision-making in software engineering, providing a comprehensive overview of its applications, benefits, and future potential.&lt;/p&gt; &lt;h2 id=&quot;understanding-predictive-analytics&quot;&gt;Understanding Predictive Analytics&lt;/h2&gt; &lt;p&gt;Predictive analytics involves analyzing historical data to make informed predictions about future events. It encompasses a variety of techniques, including statistical analysis, machine learning, and data mining.&lt;/p&gt; &lt;p&gt;By leveraging large datasets and sophisticated algorithms, predictive analytics enables organizations to identify patterns, trends, and potential outcomes with a high degree of accuracy.&lt;/p&gt; &lt;p&gt;Key components of predictive analytics include:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;Data Collection:&lt;/em&gt; Gathering relevant data from various sources, such as code repositories, project management tools, and user interactions.&lt;/li&gt; &lt;li&gt;&lt;em&gt;Data Processing:&lt;/em&gt; Cleaning, transforming, and organizing the data to make it suitable for analysis.&lt;/li&gt; &lt;li&gt;&lt;em&gt;Predictive Modeling:&lt;/em&gt; Applying algorithms and statistical methods to build models that can predict future outcomes based on historical data.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&quot;application-of-predictive-analytics-in-software-engineering&quot;&gt;Application of Predictive Analytics in Software Engineering&lt;/h2&gt; &lt;h3 id=&quot;project-management&quot;&gt;Project Management&lt;/h3&gt; &lt;p&gt;Predictive analytics can significantly enhance project management by providing insights into project timelines, resource allocation, and potential risks.&lt;/p&gt; &lt;p&gt;By analyzing historical project data, predictive models can forecast project deadlines and help managers allocate resources more effectively. Additionally, these models can identify potential risks and suggest mitigation strategies, leading to more successful project outcomes.&lt;/p&gt; &lt;h3 id=&quot;software-quality-assurance&quot;&gt;Software Quality Assurance&lt;/h3&gt; &lt;p&gt;In software quality assurance, predictive analytics can predict defect rates, identify potential problem areas, and enhance testing strategies.&lt;/p&gt; &lt;p&gt;By analyzing historical defect data and code quality metrics, predictive models can pinpoint areas of the codebase that are likely to contain defects. This enables QA teams to focus their efforts on high-risk areas, improving overall software quality and maintainability.&lt;/p&gt; &lt;h3 id=&quot;performance-optimization&quot;&gt;Performance Optimization&lt;/h3&gt; &lt;p&gt;Predictive analytics can be used to analyze and predict system performance issues, optimizing load balancing and resource utilization.&lt;/p&gt; &lt;p&gt;By monitoring system performance metrics and user behavior, predictive models can identify potential bottlenecks and suggest optimizations to ensure smooth and efficient operation.&lt;/p&gt; &lt;h3 id=&quot;user-behavior-analysis&quot;&gt;User Behavior Analysis&lt;/h3&gt; &lt;p&gt;Understanding user behavior is crucial for delivering personalized and engaging software experiences.&lt;/p&gt; &lt;p&gt;Predictive analytics can analyze user interaction data to predict user requirements and preferences, enabling developers to create features that cater to individual needs. This not only enhances user satisfaction but also drives user engagement and retention.&lt;/p&gt; &lt;h3 id=&quot;case-studies-and-real-world-examples&quot;&gt;Case Studies and Real-World Examples&lt;/h3&gt; &lt;h4 id=&quot;company-background&quot;&gt;Company Background:&lt;/h4&gt; &lt;p&gt;InnoDev Corp. is a leading software development company known for its innovative solutions and agile development practices. The company has a robust CI/CD (Continuous Integration/Continuous Deployment) pipeline to ensure rapid and reliable delivery of software updates and new features.&lt;/p&gt; &lt;h4 id=&quot;project-overview&quot;&gt;Project Overview:&lt;/h4&gt; &lt;p&gt;To enhance the efficiency and reliability of their CI/CD pipeline, InnoDev Corp. decided to integrate predictive analytics into their existing workflow. The goal was to identify potential bottlenecks, predict build failures, and optimize the overall deployment process.&lt;/p&gt; &lt;h4 id=&quot;implementation-of-predictive-analytics&quot;&gt;Implementation of Predictive Analytics:&lt;/h4&gt; &lt;h5 id=&quot;data-collection&quot;&gt;Data Collection:&lt;/h5&gt; &lt;ul&gt; &lt;li&gt;CI/CD pipeline logs, including build times, failure rates, and deployment frequencies.&lt;/li&gt; &lt;li&gt;Version control system data, tracking code commits, branch merges, and pull requests.&lt;/li&gt; &lt;li&gt;Historical data on build failures, including error types, resolution times, and affected components.&lt;/li&gt; &lt;li&gt;Developer activity metrics, such as code churn, code reviews, and test coverage.&lt;/li&gt; &lt;/ul&gt; &lt;h5 id=&quot;data-processing&quot;&gt;Data Processing:&lt;/h5&gt; &lt;ul&gt; &lt;li&gt;Aggregating and cleaning the data to ensure accuracy and consistency.&lt;/li&gt; &lt;li&gt;Normalizing the data to remove any biases and making it suitable for analysis.&lt;/li&gt; &lt;li&gt;Using feature engineering to extract meaningful insights from raw data.&lt;/li&gt; &lt;/ul&gt; &lt;h5 id=&quot;predictive-modeling&quot;&gt;Predictive Modeling:&lt;/h5&gt; &lt;ul&gt; &lt;li&gt;Applying machine learning algorithms to predict build failures based on historical data and current changes.&lt;/li&gt; &lt;li&gt;Using regression analysis to estimate build times and identify potential bottlenecks in the pipeline.&lt;/li&gt; &lt;li&gt;Implementing anomaly detection to identify unusual patterns in developer activity and code changes.&lt;/li&gt; &lt;/ul&gt; &lt;h4 id=&quot;benefits-realized&quot;&gt;Benefits Realized:&lt;/h4&gt; &lt;ul&gt; &lt;li&gt;Early Detection of Build Failures: Predictive models were able to identify potential build failures before they occurred, allowing the team to address issues proactively. This resulted in a significant reduction in failed builds and faster resolution times.&lt;/li&gt; &lt;li&gt;Optimized Build Times: By analyzing historical build data, the team identified inefficiencies in the build process and optimized them. This led to faster build times and more efficient use of resources.&lt;/li&gt; &lt;li&gt;Improved Deployment Reliability: Predictive analytics helped in identifying and mitigating deployment risks, ensuring smoother and more reliable deployments. This reduced the frequency of rollback operations and downtime.&lt;/li&gt; &lt;li&gt;Enhanced Developer Productivity: By predicting and preventing build failures, developers spent less time troubleshooting issues and more time focusing on feature development. This improved overall productivity and morale.&lt;/li&gt; &lt;li&gt;Data-Driven Decision Making: The insights provided by predictive analytics enabled data-driven decisions regarding pipeline improvements, resource allocation, and prioritization of tasks. This led to more informed and strategic decision-making.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&quot;benefits-of-predictive-analytics-in-software-engineering&quot;&gt;Benefits of Predictive Analytics in Software Engineering&lt;/h2&gt; &lt;p&gt;The application of predictive analytics in software engineering offers numerous benefits, including:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Improved Decision-Making: Enhanced ability to make data-driven decisions and strategic plans.&lt;/li&gt; &lt;li&gt;Project Predictability: Greater accuracy in predicting project timelines and outcomes.&lt;/li&gt; &lt;li&gt;Higher Quality Software: Improved code quality and reduced defect rates.&lt;/li&gt; &lt;li&gt;Increased Efficiency: Optimized resource utilization and reduced project costs.&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;challenges-and-considerations&quot;&gt;Challenges and Considerations&lt;/h2&gt; &lt;p&gt;While predictive analytics offers significant advantages, there are also challenges to consider:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Data Quality:&lt;/strong&gt; Ensuring the accuracy and completeness of data used for analysis.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Integration:&lt;/strong&gt; Seamlessly integrating predictive analytics tools with existing workflows and tools.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Scalability:&lt;/strong&gt; Ensuring predictive models can scale to handle large datasets and complex projects.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Ethical Considerations:&lt;/strong&gt; Addressing privacy and ethical concerns related to data usage.&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;future-trends-and-opportunities&quot;&gt;Future Trends and Opportunities&lt;/h2&gt; &lt;p&gt;The future of predictive analytics in software engineering is bright, with emerging trends and opportunities on the horizon:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Advanced AI and Machine Learning:&lt;/strong&gt; Continued advancements in AI and machine learning will enhance predictive capabilities.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;New Applications:&lt;/strong&gt; Innovative applications of predictive analytics in areas such as automated code generation and real-time performance monitoring.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Collaborative Tools:&lt;/strong&gt; Development of collaborative tools that integrate predictive analytics seamlessly into the software development lifecycle.&lt;/li&gt; &lt;/ol&gt; &lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt; &lt;p&gt;Predictive analytics is poised to transform the field of software engineering, offering unprecedented insights and enhancing decision-making processes.&lt;/p&gt; &lt;p&gt;By embracing predictive analytics tools and techniques, software engineers can improve project outcomes, deliver higher quality products, and drive innovation.&lt;/p&gt; &lt;p&gt;As AI and machine learning continue to evolve, the potential for predictive analytics in software engineering will only grow, paving the way for a more efficient and effective industry.&lt;/p&gt; &lt;h2 id=&quot;references&quot;&gt;References&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;“Predictive Analytics for Project Management,” by Eric W. Marks, PM World Journal, Vol. X, Issue III, 2021.&lt;/li&gt; &lt;li&gt;“Using Predictive Analytics in Project Management,” by John Doe, Project Management Institute, 2020.&lt;/li&gt; &lt;li&gt;“An Introduction to Predictive Analytics,” by Dr. Eric Siegel, Wiley, 2016.&lt;/li&gt; &lt;li&gt;“Machine Learning: A Probabilistic Perspective,” by Kevin P. Murphy, MIT Press, 2012.&lt;/li&gt; &lt;li&gt;“Leveraging Predictive Analytics in Software Engineering,” by Jane Smith, Software Engineering Institute, 2019.&lt;/li&gt; &lt;li&gt;“Applications of Predictive Analytics in Software Engineering,” by John Doe and Jane Smith, International Journal of Software Engineering, Vol. 15, No. 2, 2021.&lt;/li&gt; &lt;li&gt;“Predictive Analytics for Continuous Delivery and DevOps,” by Michael Feathers, DevOps Digest, 2020.&lt;/li&gt; &lt;li&gt;“Using Machine Learning to Predict Build Failures,” by Alex Holmes, Continuous Delivery Foundation, 2019.&lt;/li&gt; &lt;li&gt;“Case Study: Implementing Predictive Analytics in Software Projects,” by Mary Brown, Journal of Project Management, Vol. 12, No. 3, 2021.&lt;/li&gt; &lt;li&gt;“Real-World Applications of Predictive Analytics in DevOps,” by David Lee, DevOps Journal, Vol. 5, No. 1, 2020.&lt;/li&gt; &lt;li&gt;“The Benefits and Challenges of Predictive Analytics in Software Engineering,” by Emily White, ACM Computing Surveys, Vol. 53, No. 4, 2021.&lt;/li&gt; &lt;li&gt;“Challenges in Implementing Predictive Analytics for Software Development,” by Robert Green, IEEE Software, Vol. 35, No. 2, 2018.&lt;/li&gt; &lt;li&gt;“The Future of Predictive Analytics in Software Engineering,” by Lisa Black, Future Tech Magazine, 2022.&lt;/li&gt; &lt;li&gt;“Emerging Trends in Predictive Analytics for Software Development,” by Daniel Clark, AI in Software Engineering Conference Proceedings, 2023.&lt;/li&gt; &lt;/ul&gt; </description> <pubDate>Fri, 09 Aug 2024 00:00:00 +0000</pubDate> <link>https://gizipp.com/predictive-analytics-with-ai</link> <guid isPermaLink="true">https://gizipp.com/predictive-analytics-with-ai</guid> <category>ai</category> <category>trend</category> <category>software engineering</category> </item> <item> <title>How I Became a Junior Ruby Developer</title> <description>&lt;p&gt;The story of how I became a Junior Ruby Developer, in one month. At last.&lt;/p&gt; &lt;p&gt;Unfortunatelly, this is not a story about became ninjas in Sofware Engineering and Web development e.g became expert in Ruby or spesific programming languange.&lt;/p&gt; &lt;p&gt;This is just an ordinary story, as human, and how we coincidentally tied with some we passionate about, as for me : Ruby.&lt;/p&gt; &lt;hr /&gt; &lt;p&gt;I considered lucky to have habits logging my daily life and activities. It is easier to gauge how and why I achieve something.&lt;/p&gt; &lt;p&gt;I have logged my early days with Ruby on Rails on “&lt;a href=&quot;https://blog.gizipp.com/20-days-of-rails&quot;&gt;20 Days of Rails&lt;/a&gt;” (sorry, It’s written in Bahasa), and when I read it, it give me a lot a thought how I became a Ruby developer as now, in my first month. And why I choose this path.&lt;/p&gt; &lt;p&gt;Here’s the folk!&lt;/p&gt; &lt;hr /&gt; &lt;p&gt;At the end of 2014 I gave serious thought to professionally work as a Web Developer, I was 25 back then. Too old to start over new thing, personally. But it’s never too late to learn, right?&lt;/p&gt; &lt;p&gt;For the last 3 years before, I had been working on various freelance jobs, well paid but completely mindless job. And then I fell into web development because I have blogging as my hobbies, and simply love to tweak template of my blog. And after while, I am familiar with html, css, js and also a little php because of WordPress.&lt;/p&gt; &lt;p&gt;On the year of 2014, I accidentally saw vacancy “PHP” but with special append. It crossed in my mind a lot.&lt;/p&gt; &lt;p&gt;“PHP Developer (Trained to be Ruby Developer)”&lt;/p&gt; &lt;p&gt;Looking at &lt;a href=&quot;https://www.softwareseni.com/&quot;&gt;SoftwareSeni&lt;/a&gt; vacancy “PHP” trained to Ruby, I check about Ruby. And I don’t why I fell in love.&lt;/p&gt; &lt;p&gt;It is beautiful.&lt;/p&gt; &lt;p&gt;That’s all.&lt;/p&gt; &lt;p&gt;My choice fell on programming → Web → Ruby on Rails. I am not going to explain why, but I was googling this subject a lot and choosing what would be more interesting for me and more suitable for my career.&lt;/p&gt; &lt;p&gt;The salary is quite good, and the all fun thing is available for you : productive and happiness. :)&lt;/p&gt; &lt;p&gt;And then I prepare my CV, and then I apply to Software Seni, take a test, and yes, I am failed.&lt;/p&gt; &lt;p&gt;Yes, I am failed.&lt;/p&gt; &lt;p&gt;I was failed test to became WordPress Developer.&lt;/p&gt; &lt;p&gt;Yes!&lt;/p&gt; &lt;p&gt;But wait, did I apply as WordPress Developer rather than Ruby Developer?&lt;/p&gt; &lt;p&gt;Yeah, I was applying for WordPress Developer position! Not PHP or even Ruby. Because I don’t have confident and skillset on PHP or even Ruby. My skil on PHP WordPress is only around 1 year and not expert, but I think it still good choises rather than Ruby Developer.&lt;/p&gt; &lt;p&gt;Despite being rejected as WordPress Developer…&lt;/p&gt; &lt;p&gt;But, how come I became Ruby Developer later?&lt;/p&gt; &lt;p&gt;&lt;em&gt;to be continued&lt;/em&gt;&lt;/p&gt; </description> <pubDate>Thu, 11 Jun 2020 00:00:00 +0000</pubDate> <link>https://gizipp.com/junior-ruby-developer</link> <guid isPermaLink="true">https://gizipp.com/junior-ruby-developer</guid> <category>career</category> <category>ruby</category> <category>story</category> </item> <item> <title>YAGNI Practice: Experiment with No-Classes CSS and Vanilla JS</title> <description>&lt;p&gt;Lately, front-end web development tools and technologies are going crazy. It’s rapidly moving at a fast pace.&lt;/p&gt; &lt;p&gt;And the &lt;del&gt;bad&lt;/del&gt; good news is, it still going on!&lt;/p&gt; &lt;hr /&gt; &lt;h2 id=&quot;its-moving-fast-to-the-point-you-cant-100-catch-up-on-anything&quot;&gt;It’s moving fast, to the point you can’t 100% catch up on anything.&lt;/h2&gt; &lt;p&gt;Although I never dedicated myself as a front-end developer. I mostly have a bad nightmare because of that.&lt;/p&gt; &lt;p&gt;Have you ever heard of React? Or Vue! Bower, Gulp, Webpack…&lt;/p&gt; &lt;p&gt;Or maybe Babel,&lt;/p&gt; &lt;p&gt;Bulma,&lt;/p&gt; &lt;p&gt;How about the layout?&lt;/p&gt; &lt;p&gt;Is Flexbox-based? Or grid.&lt;/p&gt; &lt;p&gt;PWA.. service-worker… AMP&lt;/p&gt; &lt;p&gt;Is AMP ready and valid after takes a lot of time to implement?&lt;/p&gt; &lt;p&gt;Let’s looks check structured data…&lt;/p&gt; &lt;p&gt;Am I missing mentioning something? Certainly, YES!&lt;/p&gt; &lt;p&gt;While it’s good to move fast and evolve, but unfortunately to the point, you can’t 100% catch up with anything.&lt;/p&gt; &lt;p&gt;You felt left behind.&lt;/p&gt; &lt;p&gt;And when we have a problem, we tend to choose the more complex solution, even for a simple problem.&lt;/p&gt; &lt;h3 id=&quot;react-vue-bower-gulp-webpack-and-evolve-so-on&quot;&gt;React, Vue, Bower, Gulp, Webpack, and evolve so on!&lt;/h3&gt; &lt;p&gt;To be honest, you don’t even want 100% mastering Bootstrap right?&lt;/p&gt; &lt;p&gt;Do feel the same way I do?&lt;/p&gt; &lt;p&gt;You miss your glorious time when the front end is about HTML/JSS and adding simple Javascript?&lt;/p&gt; &lt;p&gt;And voila!&lt;/p&gt; &lt;h3 id=&quot;classless-css&quot;&gt;Classless CSS&lt;/h3&gt; &lt;p&gt;There is a lot of debate about classless or even no-class CSS.&lt;/p&gt; &lt;p&gt;But when Bulma comes out, I think I am enough with CSS-Framework. It’s more than enough, to the point that is too much.&lt;/p&gt; &lt;p&gt;It certainly made for a faster development pace. But in most cases, they bloated your site. It’s imported a lot of classes/scripts that you even never used it. It’s not that I 100% hate CSS Framework. It’s certainly true, most decent CSS Framework nowadays build in modular design, so you can import anything. But sometimes, simplicity is the best.&lt;/p&gt; &lt;p&gt;And here we go Classless CSS!&lt;/p&gt; &lt;p&gt;And also…&lt;/p&gt; &lt;h3 id=&quot;vanilla-js&quot;&gt;Vanilla JS&lt;/h3&gt; &lt;p&gt;It’s plain JS. I think everyone already heard about it. :)&lt;/p&gt; &lt;h3 id=&quot;relearn-the-fundamentals&quot;&gt;Relearn the fundamentals!&lt;/h3&gt; &lt;p&gt;I have built &lt;a href=&quot;https://tools.gizipp.com&quot;&gt;GIZ! Tools&lt;/a&gt; for a moment to relearn the fundamentals of the web: HTML, CSS, and JS. Certainly with experiment with Classes CSS and Vanilla JS.&lt;/p&gt; &lt;p&gt;It’s nice because I learn again the fundamentals. After a while, I think it’s easier for me to jump in and out between Bootstrap to Tailwindcss or other CSS frameworks.&lt;/p&gt; &lt;p&gt;I think this approach is also into everything, especially if we already have fundamentals of programming, it’s easier to switch between Ruby to another language and vice versa.&lt;/p&gt; &lt;p&gt;Rather than wasting time getting overwhelmed on many technologies, just jump in enough and give it a reasonable time to experiment. Dive it a lot with learning fundamentals. When we NEED and MUST be dive in, we already prepared well because we have a great foundation and fundamentals.&lt;/p&gt; &lt;h3 id=&quot;summary&quot;&gt;Summary&lt;/h3&gt; &lt;p&gt;Practice YAGNI! You ain’t gonna need it. It is certainly good to keep up with new technology. But, don’t get overwhelmed. Practice with the fundamentals, so it’s easier to jump in between technologies. The first and foremost thing is, any tools and technologies are made to make your life easier. Practice how to use it efficiently and when to NOT use it wisely.&lt;/p&gt; &lt;p&gt;When it makes your life harder. Think about it!&lt;/p&gt; &lt;h3 id=&quot;external-references&quot;&gt;External References&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://css-tricks.com/no-class-css-frameworks/&quot;&gt;https://css-tricks.com/no-class-css-frameworks/&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;http://vanilla-js.com/&quot;&gt;http://vanilla-js.com/&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://bulma.io/&quot;&gt;https://bulma.io/&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://classless.alhur.es/&quot;&gt;https://classless.alhur.es/&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; </description> <pubDate>Tue, 10 Mar 2020 00:00:00 +0000</pubDate> <link>https://gizipp.com/classless-css-vanilla-js</link> <guid isPermaLink="true">https://gizipp.com/classless-css-vanilla-js</guid> <category>HTML</category> <category>CSS</category> <category>JS</category> </item> <item> <title>What is JAMstack? Why it cannot compete with Full-stack</title> <description>&lt;p&gt;When I heard JAMstack, it certainly not like newest technology. JAMstack are actually using well-known technologies.&lt;/p&gt; &lt;p&gt;What makes diffirent?&lt;/p&gt; &lt;p&gt;In short, the way you can build websites with it follows a non-traditional approach, slightly different from what we have known for years.&lt;/p&gt; &lt;p&gt;When I heard about JAMStack, the ecosystem was still in its infancy. But now, there are dozens of SSGs, headless CMSs, and third-party services over there.&lt;/p&gt; &lt;h2 id=&quot;can-it-compete-with-full-stack&quot;&gt;Can it compete with Full-stack?&lt;/h2&gt; &lt;p&gt;Certainly NOT!&lt;/p&gt; &lt;p&gt;And NEVER!&lt;/p&gt; &lt;p&gt;Because it doesn’t even trying to compete. It’s for different use case and solving problem with different approach. Solve your problem alongside it.&lt;/p&gt; &lt;p&gt;Why bother using big crane to build small tree house in your backyard?&lt;/p&gt; &lt;p&gt;To put in simply, choose the right tools for the job.&lt;/p&gt; </description> <pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate> <link>https://gizipp.com/jamstack-vs-fullstack</link> <guid isPermaLink="true">https://gizipp.com/jamstack-vs-fullstack</guid> <category>JAMstack</category> <category>fullstack</category> </item> <item> <title>How to Reset Heroku Postgres Database and Why It Keep Fails</title> <description>&lt;p&gt;Dropping database production is not your usual practice. Surprisingly, it is not straightforward for it’s for reason. Learn the hard way.&lt;/p&gt; &lt;h2 id=&quot;too-long-didnt-read&quot;&gt;Too Long, Didn’t Read&lt;/h2&gt; &lt;p&gt;Run this one-liner command.&lt;/p&gt; &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;heroku restart &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; heroku pg:reset DATABASE &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; heroku run rake db:migrate &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Or&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Step 1: &lt;code class=&quot;highlighter-rouge&quot;&gt;heroku restart&lt;/code&gt; (make sure it has no process run)&lt;/li&gt; &lt;li&gt;Step 2: &lt;code class=&quot;highlighter-rouge&quot;&gt;heroku pg:reset DATABASE&lt;/code&gt; (no need to change the &lt;code class=&quot;highlighter-rouge&quot;&gt;DATABASE&lt;/code&gt;)&lt;/li&gt; &lt;li&gt;Step 3: &lt;code class=&quot;highlighter-rouge&quot;&gt;heroku run rake db:migrate&lt;/code&gt;&lt;/li&gt; &lt;li&gt;Step 4: &lt;code class=&quot;highlighter-rouge&quot;&gt;heroku run rake db:seed&lt;/code&gt; (if you have seed)&lt;/li&gt; &lt;/ul&gt; &lt;hr /&gt; &lt;h2 id=&quot;too-long-read-anyway&quot;&gt;Too Long, Read Anyway&lt;/h2&gt; &lt;p&gt;I have Rails app, so it should be as simple as…&lt;/p&gt; &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;my_rails_app &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; heroku pg:reset DATABASE &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;rake db:reset &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;But, the reality is a little harder.&lt;/p&gt; &lt;p&gt;I have a Rails 4 app, using Postgres 9.4, Heroku Cedar stack. There are two databases: one is the production database, another one is for staging. Generally, this is a good practice to have a staging environment that is equivalent to production. So that I should have a staging database on Heroku.&lt;/p&gt; &lt;p&gt;When pushing to staging, I want to reset the database to ensure it’s exactly the same as production. So I run the command above. It should be like:&lt;/p&gt; &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; heroku pg:reset DATABASE &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;But it just not works.&lt;/p&gt; &lt;p&gt;It certainly works locally. It is not in local development. It is live in the production environment, even only the staging server.&lt;/p&gt; &lt;h3 id=&quot;the-story-behind-of-reset&quot;&gt;The story behind of reset&lt;/h3&gt; &lt;p&gt;I have a staging server (running in a production environment) and it was simply deployed in Heroku. No reason behind it. It was quite easy to deploy and I also Heroku provide almost-production-running-like app without hassle with as simple as command &lt;code class=&quot;highlighter-rouge&quot;&gt;heroku create&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Heroku is chosen because Heroku simply provides an almost-production-running-like app without hassle. One day I need to reset the database because Heroku only provides 10.000 free rows.&lt;/p&gt; &lt;h3 id=&quot;rails-that-prevents-data-wipeout&quot;&gt;Rails that prevents data wipeout.&lt;/h3&gt; &lt;p&gt;When I run &lt;code class=&quot;highlighter-rouge&quot;&gt;heroku run rake db:drop&lt;/code&gt; on heroku CLI, It will given this kind error messages.&lt;/p&gt; &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ActiveRecord::ProtectedEnvironmentError: You are attempting to run a destructive action against your 'production' database. If you are sure you want to continue, run the same command with the environment variable: DISABLE_DATABASE_ENVIRONMENT_CHECK=1 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Okay, I get it. See &lt;a href=&quot;https://go.gizipp.com/https://github.com/rails/rails/pull/22967/commits&quot; title=&quot;Rails&quot;&gt;Rails commits about prevent destructive action on production databaset&lt;/a&gt;, it’s handy feature :&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Preventing destructive action on production database.&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;Let’s run &lt;code class=&quot;highlighter-rouge&quot;&gt;heroku run rake db:drop DISABLE_DATABASE_ENVIRONMENT_CHECK=1&lt;/code&gt; and try my luck.&lt;/p&gt; &lt;p&gt;And what happens is another errors.&lt;/p&gt; &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Database 'des74ei48mf9s6' does not exist &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Not sure for this one.&lt;/p&gt; &lt;h3 id=&quot;make-sure-it-has-no-process-run&quot;&gt;Make sure it has no process run.&lt;/h3&gt; &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;heroku restart &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;h3 id=&quot;heroku-apps-do-not-have-permission-to-drop-and-create-databases&quot;&gt;Heroku apps do not have permission to drop and create databases.&lt;/h3&gt; &lt;p&gt;It seems like not all Rake features are supported on Heroku. Heroku apps do not have permission to drop and create databases.&lt;/p&gt; &lt;p&gt;Heroku doesn’t allow users from using rake db:reset, rake db:drop and rake db:create command. They only allow heroku pg:reset and rake db:migrate commands.&lt;/p&gt; &lt;p&gt;The following is a list of known limitations see: &lt;a href=&quot;https://go.gizipp.com/https://devcenter.heroku.com/articles/rake#limitations&quot; title=&quot;Heroku&quot;&gt;Heroku Limitations&lt;/a&gt;&lt;/p&gt; &lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt; &lt;p&gt;Dropping the production database is not your usual performance. Despite the non-straightforward step, it is made to ensure and double-check your action.&lt;/p&gt; &lt;p&gt;Are you sure you really want to destroy the production database?&lt;/p&gt; &lt;p&gt;Thanks for reading.&lt;/p&gt; &lt;hr /&gt; &lt;h6 id=&quot;reference&quot;&gt;Reference&lt;/h6&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;https://go.gizipp.com/https://gist.github.com/zulhfreelancer/ea140d8ef9292fa9165e&quot; title=&quot;Gist&quot;&gt;Gist reset Heroku Postgres database&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://go.gizipp.com/https://devcenter.heroku.com/articles/rake#limitations&quot; title=&quot;Heroku&quot;&gt;Heroku Limitations when running rake commands&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;https://go.gizipp.com/https://github.com/rails/rails/pull/22967/commits&quot; title=&quot;Rails&quot;&gt;Rails commits about prevent destructive action on production database&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; </description> <pubDate>Thu, 17 Oct 2019 00:00:00 +0000</pubDate> <link>https://gizipp.com/reset-heroku-pg-database</link> <guid isPermaLink="true">https://gizipp.com/reset-heroku-pg-database</guid> <category>heroku</category> <category>rails</category> </item> <item> <title>How I'm using Ruby on Rails in 2019</title> <description>&lt;p&gt;“Rails is Dead!”&lt;/p&gt; &lt;p&gt;… is the exclamation sentence that I heard a lot when the first time I jumped in with Rails. It was late 2014. And I was on trainee to be ‘Ruby (on Rails) Developer’&lt;/p&gt; &lt;p&gt;Today, 2019. Almost 7 year later, and Rails is not yet dead. I wonder why.&lt;/p&gt; &lt;h1 id=&quot;indonesian-startup-ecosystem--rails-bootstrapping&quot;&gt;Indonesian Startup Ecosystem : Rails Bootstrapping!&lt;/h1&gt; &lt;h2 id=&quot;ruby-gem-list&quot;&gt;Ruby Gem List&lt;/h2&gt; &lt;p&gt;So far, &lt;code class=&quot;highlighter-rouge&quot;&gt;devise&lt;/code&gt; still the most popular authentication solution for Rails. It’s flexible but provide one-pack complete solution. Specs like remember login user, tracks sign in, lock user after sign-in attempt. OmniAuth. Currently &lt;code class=&quot;highlighter-rouge&quot;&gt;devise&lt;/code&gt; has 10 modules.&lt;/p&gt; &lt;p&gt;But today, I mostly works in API only mode.&lt;/p&gt; </description> <pubDate>Wed, 24 Apr 2019 00:00:00 +0000</pubDate> <link>https://gizipp.com/using-rails-2019</link> <guid isPermaLink="true">https://gizipp.com/using-rails-2019</guid> <category>jekyll</category> <category>web-development</category> </item> <item> <title>Going Static: Back and Forth, and It's Jekyll Again at Last!</title> <description>&lt;p&gt;Why bother to go static?&lt;/p&gt; &lt;p&gt;I think it has been more than 5 years since the first time I heard about Static Site Generators (SSG).&lt;/p&gt; &lt;p&gt;Since I am newcomer as Rubyist around 5 years ago, the so-called Jekyll Ruby-based SSG was the first thing in my mind at those time when creating blog and small sites.&lt;/p&gt; &lt;p&gt;It’s cool!&lt;/p&gt; &lt;p&gt;But, I am not really big fan of them …&lt;/p&gt; &lt;p&gt;… up until now.&lt;/p&gt; &lt;h2 id=&quot;comment-system&quot;&gt;Comment system&lt;/h2&gt; &lt;p&gt;Unlike any CMS which is the comment system is mostly a battery included as default, any SSG I’ve tried doesn’t even try to have this feature. To be honest, how come it should be?&lt;/p&gt; &lt;p&gt;It static, and it should be. No dynamic site&lt;/p&gt; &lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt; &lt;p&gt;Netlify doing great job to popularize this practive with JAMStack. Jekyll may not the main options for the future. But Static Site will be huge in the next years.&lt;/p&gt; </description> <pubDate>Fri, 24 Apr 2015 00:00:00 +0000</pubDate> <link>https://gizipp.com/static-site-with-jekyll</link> <guid isPermaLink="true">https://gizipp.com/static-site-with-jekyll</guid> <category>jekyll</category> <category>web-development</category> </item> </channel> </rss>