Free Weekend: AI Showdown
Lovable
is free this weekend. Pick your AI model to build your app.
This is a nice opportunity to test different AI models and create at least some draft pages for side/pet projects. Possible options to use at the moment are Google, Anthropic, OpenAI (have not checked the exact models yet, drop down shows just vendor selection).
So far in the context of Lovable
my favorite model vendor is OpenAI, and Anthropic is on the second position (but close to OpenAI). Google is unfortunately far behind. Not sure why, but with the same prompts Google generates more simple and dark website versions.
That was an exciting experience (despite some We are currently under heavy load, please try again later
messages).
Recently I have tried to parse mongoose
schema definitions to some meaningful db markdown to visualize the data models connections.
Original choice was mermaid
(Entity Relationship Diagrams
) however after producing the diagram for 50+
collections with 150+
relations it appeared to be unusable and not something you can deal with.
Another option was dbml
. Once I finally produced the valid dbml
definitions I have pasted them at https://dbdiagram.io/. You still need to manually move the blocks to visualize the relationships better, but looks much more promising now.
Few notes regarding https://dbdiagram.io/:
- Exports are available to
PDF, PNG, SVG
- Export is also possible to
SQL
for PostreSQL/Oracle/MySQL/SQL Server
- No (at least I have not found) any way to export the diagram's meta data (e.g. if I create new db and add the same definition I will need to move again the blocks manually, which is not a great experience); however update the definitions in the existing db model works fine and does not reset the position of the moved items.
- Purchased
Personal Pro
subscription to play with that for a while and to be able to share model internally with couple team mates.
Prepared and published the module for comparing two mongodb instances and publishing the indexes discrepancies between them (e.g. what is missing in the source
server and what is missing in the destination
).
Module name is mongo-compare-indexes
The usage is pretty straight forward. You either define the URLs along with the command:
npx mongo-compare-indexes run mongodb://localhost:27017/db_name_source mongodb://localhost:27017/db_name_target
or you define the ENV
variable first (they are TARGET_MONGO_URL
and SOURCE_MONGO_URL
). Example:
export TARGET_MONGO_URL="mongodb://user:pass@host:port/db_name"
export SOURCE_MONGO_URL="mongodb://localhost/db_name"
and then just use:
npx mongo-compare-indexes run
Few notes from the conference.
Yuriy Artyukh
Fronted/Animations
WebCodecs API
- some client features on the client side can be disabled
- css supports scroll in animation
- dealing with canvas/WebGL and scroll
- scroll is handled in separate thread, so there is a delay; that's why custom scroll is implemented in js
- Lenis scroll is most popular for custom scrolls now
- Native scroll with webGL: canvas with height 110% and position absolute
- hacks like above most likely will not disappear and it will feel like magic
- Without deviation from the norm, progress is not possible (c) Frank Zappa
Serhii Babich
Signals/Frontend
- Signals is the new solution for frontend
Taras Shevchuk
Effect oriented programming
- effect.ts; ideas fron java Effect
- Chapter #1: Effect - abstraction for calculation declaration
- RxJS observable
- challenge #1: has issues with catch error typing
- challenge #2: poor DI typing system
- Effect<A,E,R> (for data, error and context)
- Effect.catchTag for specif error type(s)
- Effect.provideService for DI types
- Effect.runFork(someEffect)
- Chapter #2: abstraction for executing calculation
- Fiber Queues
- Chapter #3: Schema (recommendation: using Effect with Schema
- Schema<T,E,R> (data, encoding i/o, context)
Khrystyna Landvytovych
30 years of web evolution
- From JSP, Ajax to the frameworks and AI
- jQuery is fine and will be there
Illya Klimov
Architecture? Didn't hear
- What is architecture on Frontend?
- Architecture-as-a-plan and Architecture-as-a-process
- AI-readyness; Level of Context (amount of context needed to make the change)
- Allow to make decisions at the later stage
Refreshing my knowledge about SCRUM in preparation for the interviews.
The Scrum master
serves to facilitate scrum
to the larger team by ensuring the scrum framework is followed
.
A Scrum Team
is a small (typically 10 or fewer
) team of people that work together, using the Scrum Framework, to create something valuable. The team consists of:
- A
Product Owner
who maximizes the value of the product that results from the work of the Scrum Team
Developers
who create the product
- A
Scrum Master
who helps the team improve its practices and effectiveness
%%{init: {'theme':'dark'}}%%
stateDiagram
sp: Sprint Planning
ds: Daily Scrum
sr: Sprint Review
sretro: Sprint Retrospective
[*] --> sp
sp --> ds: Sprint Backlog is prepared during the planning
ds --> ds: Daily Event timeboxed for 15 minutes
ds --> sr: End Of Sprint
sr --> sretro
sretro --> [*]
Scrum, known for its empirical
process framework
, revolves around three core pillars
:
transparency
inspection
adaptation
kanban
Foundation
empiricism
lean thinking
small team of people
SCRUM pillars
transparency
inspection
adaptation
Events
Sprint <= 1 month
Sprint Planning <= 8h
Daily Scrum <= 15 mins
Sprint Review <= 4h
Sprint Retrospective <= 3h
Values
Commitment
Focus
Openness
Respect
Courage
Scrum Team
Scrum Master
Product Owner
Developers
Artifacts & commitment
Product Backlog -> Product Goal
Sprint Backlog -> Sprint Goal
Increment -> Definition of Done
The Scrum Master
helps the Scrum Team
:
- By coaching the team members in
self-management
and cross-functionality
- Focus on creating
high-value Increments
that meet the Definition of Done
- Influence the
removal of impediments
to the Scrum Team’s progress
- Ensure that
all Scrum events take place
and are positive, productive, and kept within the timebox
.
helps the Product Owner
:
- Find
techniques
for effective Product Goal definition
and Product Backlog management
- Provide ways for the Scrum Team to
understand the need for clear and concise Product Backlog
items
- Establish
empirical product planning
for a complex environment
Facilitate stakeholder collaboration
as requested or needed
supports the Organization
:
- By Leading, training and coaching them in their
Scrum adoption
- By helping employees and stakeholders
understand and instill an empirical approach
for complex work
Remove barriers
between stakeholders and Scrum Teams
What should we remember during the Sprint
:
- No changes to endanger
Sprint Goal
Quality
does not decrease
- Product
Backlog is refined
as needed
Scope
can be negotiated & refined with Product Owner as more is learned
- Product
Backlog Refinement
is handled by Scrum team and does not have specific time box.
- Not completed items are
not included
into the Product Increment.
- SCRUM teams even on the same Product
may
have different start/end
for the Sprints.
- Only
Product Owner can cancel the Sprint
, but decision can be based on the input from stakeholders, Scrum master and/ord Developers.
The Scrum
framework is immutable
. While implementing only parts of Scrum
is possible, the result is not Scrum
. Scrum exists only in its entirety and functions well as a container for other techniques, methodologies, and practices.
see SCRUM guide for more details.
Looking for new opportunities now. I will need few examples of code to share during the interviews. Going to focus on TypeScript & lambda functions first.
Calculating taxes might be a good option for such case.
GitJournal
is pretty cool app for modifying markdown on Android. Testing it for blog posts creation and modification.
Making few css updates for the blog to finalize its look and feel.
Going to learn different deployment options for AWS Lambda, starting with SAM.
Playing around with 11ty
; looks interesting and pretty straight forward. Going to try this for the personal blog.
javascript-fortuna
npm package was not updated in while; but still is being used in the project I am working on and it works fine. It would be great to find the way to properly compare it with the Math.random.