Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 31 2019 12:51
    pushqrdx edited #176
  • Jan 31 2019 12:51
    pushqrdx edited #176
  • Jan 31 2019 10:18
    pushqrdx opened #176
  • Jan 31 2019 07:20
    pushqrdx commented #169
  • Jan 31 2019 01:04
    iamtirado commented #169
  • Jan 29 2019 22:04
    shreeve commented #175
  • Jan 29 2019 13:09
    somebee closed #173
  • Jan 29 2019 13:09

    somebee on master

    Reset Stack.tag before each com… Bump version to 1.4.2 (compare)

  • Jan 29 2019 12:24

    somebee on master

    Lookup event handlers up the ow… (compare)

  • Jan 29 2019 12:23

    somebee on master

    Reset rewriter between runs Merge branch 'master' of https:… (compare)

  • Jan 29 2019 07:40
    shreeve opened #175
  • Jan 28 2019 21:26
    shreeve closed #174
  • Jan 28 2019 21:26
    shreeve commented #174
  • Jan 28 2019 21:24
    shreeve edited #174
  • Jan 28 2019 21:24
    shreeve opened #174
  • Jan 27 2019 14:37
    darcyturk opened #173
  • Jan 27 2019 10:04
    darcyturk commented #128
  • Jan 26 2019 11:56
    Alhadis opened #172
  • Jan 22 2019 01:29
    CassianoSF closed #171
  • Jan 22 2019 01:29
    CassianoSF commented #171
Fedor Leschinsky
@altteo
Before imba we used miphryl, angular, react, vue. After imba it fills like perversion.
André Kaufmann
@akaufmann

the only thing that we have not use was server rendering.

We need SSR because we are an ecommerce platform. So this is a feature that we are watching closely.

Fedor Leschinsky
@altteo
This also should not be a problem - @somebee uses it everywhere as i understand.
but you always could use some caching service for SEO indexing
in my opinion ssr is also a perversion. Needed only to satisfy google.
André Kaufmann
@akaufmann

I know and I trust @somebee but getting SSR/SSG right is tricky. Take a look here https://twitter.com/devongovett/status/1222953655722110981. Even with Next.js or Gatsby, it's not perfect and that's what they're there for.

I would remove SSR as soon as it is no longer necessary - makes a lot of things more complex - but we are not living in this time yet.

Eric Vida
@ericvida
same guy from tweet then says that Svelte is in the best position to solve this. https://twitter.com/devongovett/status/1223017940208848897?s=21
So maybe imba is too.
Fedor Leschinsky
@altteo
With ssr you will face a lot of hidden problems. For example competitors could ddos your server, or parse catalog once an hour.
if i would need to make an ecommerce site i would do it as an js application (made with imba) hosted as static files and some online db (like firestore).
And for seo i would use services like: https://renderjs.io/ , https://prerender.io/
With this approach you won’t need a server at all
Fedor Leschinsky
@altteo
server nowdays is needed only if you need some center generated content, or for some procedures (for example proceeding new orders) but in this case it is easier to use microservices to send order to email or push it to crm through api
Fedor Leschinsky
@altteo
Also want to mention that ssr architecture is not future-ready. How you imagine ssr using webassembly? We are moving towards the world where browser replaces os and is a platform for running spplications (we are already there). The world where server has addresses and returns pages on those addresses is in the past.
Otherwise you just need some templating engine (like pug), but not super tool for spa.
André Kaufmann
@akaufmann

if i would need to make an ecommerce site i would do it as an js application (made with imba) hosted as static files

We can't use SSG because it's a platform. New content is created every few seconds. It's kind of like Ebay or Airbnb.

Fedor Leschinsky
@altteo
Firestore is real-time db. You can do multiuser games with it
it is not the matter of interface it is a matter of db
The main question you should have - what will we do when our server startes to freez. And what will we do after we plug in all the hardware in it and it is still freezing (because of the heavy load)
André Kaufmann
@akaufmann
You have to feed Google + FB + other crawlers. Firebase cannot help you here. You need your content to be indexed as soon as possible, not a few days later
Fedor Leschinsky
@altteo
There are apis for adding new content to google and fb.
The fastest way is to make a rendered page (on third-party service) and add it to the google and fb api. It is server-side task, not concerning end-user expirence
André Kaufmann
@akaufmann

The main question you should have - what will we do when our server startes to freez. And what will we do after we plug in all the hardware in it and it is still freezing (because of the heavy load)

We use the power of Cloud Run/Firebase hosting and the expertise of the engineers there.

Fedor Leschinsky
@altteo
Did you know that it is very easy to write firebase functions with imba? :-)
André Kaufmann
@akaufmann

The fastest way is to make a rendered page (on third-party service) and add it to the google and fb api. It is server-side task, not concerning end-user expirence

No, it doesn't work that way.

Fedor Leschinsky
@altteo
why?
André Kaufmann
@akaufmann
Haven't used Firebase functions with Imba only with Nuxt.js/Marko.js.
André Kaufmann
@akaufmann

Because your side is crawled every day and this is what gets indexed (in step 1) if you have a SPA.

<html lang="en"">
<head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Example</title>
    ...
</head>
<body>
  <app-root></app-root>
</body>
</html>

You can't send Google every second the SSR'd content.
The Google indexer runs a second time (second wave) a few days later and indexes your content created by JS but other crawlers are not able to do this atm.

Fedor Leschinsky
@altteo
I just proposed a way not to mix user expierence with the some server and api stuff. I have not done that, bu i’m sure that you can separate content for crawlers and for users very easy. And proposed a way to do that.
André Kaufmann
@akaufmann
@altteo thanks for you suggestions! We need to take a closer look at how we can get the most out of SSR.
Sindre Aarsaether
@somebee
@altteo here is a very basic example of imba 1 vs 2 colon vs dot. https://scrimba.com/c/cD7Q8VHv
Fedor Leschinsky
@altteo
@somebee as i understand i can declare any method of a class as a getter and then do not use parenthesis? (This will be ok for me)
and it is not clear from your example how #project works... looks like as a memoized result of a getter. But can i use #project inside class in other places then getter?
Sindre Aarsaether
@somebee
Yes. #name is essentially like @name was before. Private instance variables
Fedor Leschinsky
@altteo
@somebee maybe we could make a cast on this topic togeteher today?
Sindre Aarsaether
@somebee
Home from work now - won't have time before Monday :/ But yeah, I'd love to :)
Fedor Leschinsky
@altteo
@somebee Playing with classes. Looks like @prop acts as a public property and #prop as a private (and needs setter and getter to change it fro outside)
Sindre Aarsaether
@somebee
Yes. If we reenable implicit self we could use @ for something else (I like using # for privates since it is already used for this in esnext)
Laid groundwork for allowing implicit self again today
Fedor Leschinsky
@altteo
I'm voting with both hands for implicit self, where self is an instance of a class.
Fedor Leschinsky
@altteo
also i vote for exlicit properies declaration
image.png
in this case we can use @ for public properties and # for private. I mean it is convinient when properties are colored, it is pretty obvious what are you changing just from highlight.
Fedor Leschinsky
@altteo
@somebee Huston, we have a problem. It seems that I’m the first developer on Windows who tried Imba 2. Because of the difference in paths nothing works (compiler and rollup).
Sindre Aarsaether
@somebee
:P someone has to be the first
We'll take a look. Maybe @scanf can get it running :smile:
Fedor Leschinsky
@altteo
I could do it. The only thing I could not figure out where and when you remove all "\" from OPTS.imbaPath
Oh, it is removed later. The thing is that you should use path.join for cross platforms.
Sindre Aarsaether
@somebee
Yeah, we definitely need to fix this
Eric Vida
@ericvida
Are svg's working in imba2? I'm not sure if it's been discussed.
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 520 524" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><rect id="head" x="0" y="0" width="519.66" height="523.399" style="fill:none;"/><g><path d="M223.621,10.151c149.911,-22.108 266.464,79.957 286.166,217.906c19.702,137.95 -76.299,265.942 -214.248,285.644c-137.95,19.702 -265.942,-76.299 -285.644,-214.248c-18.56,-129.947 63.815,-267.194 213.726,-289.302Z" style="fill:#ffe676;"/><path d="M77.282,85.164c-25.295,48.055 -35.282,103.874 -27.494,158.407c19.702,137.95 147.695,233.951 285.644,214.249c58.857,-8.406 110.079,-36.525 147.935,-76.72c-36.456,69.27 -104.487,120.698 -187.828,132.601c-137.95,19.702 -265.942,-76.299 -285.644,-214.248c-11.067,-77.488 13.756,-157.571 67.387,-214.289Z" style="fill:#ffd95e;"/></g></svg>
Alexander Alemayhu
@scanf
Yes, SVG seems to work. I can make you a nice example.