profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/kasbah/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

badgeek/svg2shenzhen 500

Convert Inkscape SVG drawings to KiCad PCB and footprint modules

kasbah/aioredux 24

Pythonic redux

jeanlauliac/ninja-build-gen 18

🏠 Programmatically create Ninja build-system files

kasbah/Adjustabike 0

Final year university project to design an open source build your own bike, adjustable for both use and rider.

kasbah/after.js 0

Next.js-like framework for server-rendered React apps built with React Router 4

kasbah/akt 0

APL Key Translation for use with GNU APL (by David B. Lamkins, formerly available at TieDyedDevil/akt)

kasbah/antlr4 0

ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.

kasbah/ArduTouch 0

==> ARDUTOUCH KITS ARE AVAILABLE at CornfieldElectronics.com <== ArduTouch is an Arduino-compatible music synthesizer kit with a built-in touch keyboard, and with built-in speaker/amplifier. Build it, and it works! Way low cost (currently $30.) It comes pre-programmed with a music synthesizer (called "Thick") that makes really nice sounds and music and noise. Other diverse synthesizers available at CornfieldElectronics.com . An ArduTouch Arduino library is available for programming in more super nice synthesizer features. The ArduTouch Arduino library comes with many way cool example synthesizer sketches that also serve as a tutorial for making your own ArduTouch synthesizers (which are Arduino sketches). For those who want to learn more, the documentation teaches the basics of Digital Signal Processing for audio generation (with more documentation to come)).

kasbah/argv-me 0

Node based command line argument parser

issue commentkitspace/kitspace-v2

Issues with server-side vs client-side page loads

I think we need to do a pair programming session to figure this out.

kasbah

comment created time in 6 hours

issue commentkitspace/kitspace-v2

Issues with server-side vs client-side page loads

req not being there is expected to me. That's why I attached the session to window in my initial implementation (maybe you are still doing something akin to this, I'm not sure). To me there isn't really a problem here, it just needs to be handled correctly for both cases, server and client side, req being there and not. (Don't have time to look into next-express right now but at a quick glance it's not going to solve any of this for us.)

To unify the logic I think we should do anything that relies on session on the client-side only.

That doesn't make sense to me. It's there as req.session on the server-side, no?

kasbah

comment created time in 7 hours

push eventkitspace/kitspace-v2

AbdulrhmnGhanem

commit sha e2a3d188a13da1e2f1cfc12d849232b80b045425

Fix: avoid flashing loaders for public paths. - Paths neither marked as `requireSignIn` nor `requireSingOut` are considered public paths; users can see its content whether they are logged in or not.

view details

AbdulrhmnGhanem

commit sha 87fc2f756f476e57c2af2e0beb9355539b171aad

Fix: history bug. - When users get redirected for authentication reasons, they history button gets stuck in the page to which they got redicrected.

view details

AbdulrhmnGhanem

commit sha 6d373834d95d338ede2734bebab7dc3ffb67741d

Fix: throttle loaders for authenticated routes. - Leave a period in which the loader donesn't show up, during this period the `loading` state changes which result in flashing the loader.

view details

dependabot[bot]

commit sha a57cd0fe1dd6b42e5e672b9eed5c4bf03338baa5

Build(deps): Bump jszip from 3.2.2 to 3.7.0 in /processor (#187) * Build(deps): Bump jszip from 3.2.2 to 3.7.0 in /processor Bumps [jszip](https://github.com/Stuk/jszip) from 3.2.2 to 3.7.0. - [Release notes](https://github.com/Stuk/jszip/releases) - [Changelog](https://github.com/Stuk/jszip/blob/master/CHANGES.md) - [Commits](https://github.com/Stuk/jszip/compare/v3.2.2...v3.7.0) --- updated-dependencies: - dependency-name: jszip dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: AbdulrhmnGhanem <abdoghanem160@gmail.com>

view details

Kaspar Emanuel

commit sha 55a115137ec9a1991e7dbc9ca5bc23d7e32d4371

Merge pull request #177 from kitspace/loaders Avoid flashing loaders for public paths

view details

AbdulrhmnGhanem

commit sha 9c3806b0aee915b1608a4ce480e2b67294b6b255

Fix: make redirect on search form clear `shallow`.

view details

AbdulrhmnGhanem

commit sha c168d49bb0d9a480236ed6ad981778c74cc92529

CI: increase e2e timeout

view details

AbdulrhmnGhanem

commit sha c2363a4283147f3f638dff4ddfab598e0d59639f

Fix: docstring for populate. - It should be on top of the callback function not `useCallback`.

view details

AbdulrhmnGhanem

commit sha 12317734c71542d8f0624f2439a6b1ad08e26c36

Add: Search context - Add search context to simplify the communication between the from and projects grid.

view details

AbdulrhmnGhanem

commit sha 7b9f3e29bffa220b1810cfe363950577e02699ea

Refactor: move /search style to `search.module.scss

view details

AbdulrhmnGhanem

commit sha 194c24a33dcecfe5c7d69514d6e734112a0c290d

Refactor: simplify search form submission

view details

AbdulrhmnGhanem

commit sha a424c34c4df8f951985282be6617f0d368dc1f40

Fix: prevent flashing initial projects on search submit

view details

AbdulrhmnGhanem

commit sha 3bbd91ebb938c47ba3bc178418768d157b4fab74

Fix: use same message as original kitspace for empty search

view details

AbdulrhmnGhanem

commit sha 4d8e798dedf520fa3aeb82f93fb360f893af0e07

UI: remove search form button

view details

AbdulrhmnGhanem

commit sha bdadb2f41021be6882381e82d7a67d251b8a9479

e2e: submit search form without button

view details

Kaspar Emanuel

commit sha 4591df7dae370d6af772cd3d99185de0ef63e432

Update description in search.spec.js

view details

Kaspar Emanuel

commit sha 242791cd10e05c74094607146f2427273fbd6cb9

Merge pull request #175 from kitspace/search-form Fix redirecting to `/search`

view details

Kaspar Emanuel

commit sha 758c78cbe57a1433f702f00891dc588319f98969

Disable schematic processing

view details

Kaspar Emanuel

commit sha b9f0998d908dece1a6ca11fbf146d8d520504a19

Fix checking for collaborators causing 404 (#165)

view details

Ghanem

commit sha 6f62857a669ed4b66ee2008f5285c1d9e48ebe0c

Remove Cypress intercepts (#179)

view details

push time in 4 days

push eventkitspace/kitspace-v2

Ghanem

commit sha e5a655c5d2fbe837f821b90feae788a874026607

CI: avoid rebuilding images on deploying already built images (#206)

view details

push time in 4 days

PR merged kitspace/kitspace-v2

Reviewers
Avoid rebuilding images when deploying already built images

When trying a branch (deploying it to staging), the docker images get unnecessarily rebuilt.

This reduced the first time build from 5m 4s to 1m 39s for redeployment build.

+18 -0

0 comment

1 changed file

AbdulrhmnGhanem

pr closed time in 4 days

issue commentkitspace/kitspace-v2

Long response time when clicking project cards

Alright but you said "After activating caching (...) there's no reduction in the total loading time of the page", so I meant: it being cached on the first request can explain that. Maybe it's still worth activating the caching.

kasbah

comment created time in 6 days

startedGRA0007/crab.fit

started time in 6 days

issue commentkitspace/kitspace-v2

Long response time when clicking project cards

Surely Nginx is will cache on the first request though, so the first request is still slow.

kasbah

comment created time in 6 days

issue commentkitspace/kitspace-v2

Error on staging: window.plausible is not a function

If it was causing an error, just by loading the page, then somehow window.plausible was being invoked on load. We should doubly make sure these functions aren't being called when they shouldn't be.

kasbah

comment created time in 6 days

issue commentkitspace/kitspace-v2

Delegate serving processor static files to nginx

That comment doesn't show me how serving directly with Nginx wouldn't be beneficial. Caching is one thing but a fast server and proper compression is another.

Can you link me the issue that made us think that Express.static is slow?

AbdulrhmnGhanem

comment created time in 6 days

IssuesEvent

push eventkitspace/kitspace-v2

Ghanem

commit sha 03f76156f4c75e8a2fa047913255da722e5a84ea

Fix error messages (#203) * Fix: error message always `An unexpected error has occurred` * Refactor: use `getServerSideProps` instead of `getInitailProps` - For consistency with other pages use `getServerSideProps`. * e2e: add `should show 'This page could not be found.' for 404`

view details

push time in 6 days

issue closedkitspace/kitspace-v2

Fix error messages

The homepage displays 404 while the actual error is 500.

closed time in 6 days

AbdulrhmnGhanem

PR merged kitspace/kitspace-v2

Fix error messages

Closes #191

+35 -20

0 comment

3 changed files

AbdulrhmnGhanem

pr closed time in 6 days

push eventkitspace/kitspace-v2

AbdulrhmnGhanem

commit sha c6dc21fa78ac04b1983a65b73b56d7d15bf0ddec

Add reamde processinng support - Still relys on gitea for processing for consistency. - Cheerio for postprocessing (make urls absolute).

view details

AbdulrhmnGhanem

commit sha e755d35c562ca825897b32ba7447dcb49191bf03

Remove: readme processing from the frontend server - Instead rely on the `readme.json` from the processor.

view details

Ghanem

commit sha 6b2d4118a47d9f98b534a02ba0b219c7a8f8481c

Make hosts volume readonly Co-authored-by: Kaspar Emanuel <kaspar.emanuel@gmail.com>

view details

AbdulrhmnGhanem

commit sha c0f475759793da7e8153691d8b0e52b0e7ee0a46

Use internal docker network for accessing gitea from the processor

view details

AbdulrhmnGhanem

commit sha a2a5dc064603b540cca2e8802ed0ad3831a69220

Change readme processing output: readme.json => reamde.html

view details

Kaspar Emanuel

commit sha 5b01be8485caff1f494ecdd70b4bdd5c8747a40b

Merge pull request #202 from kitspace/process-project-reamde Move readme processing to the `processor`

view details

push time in 6 days

PR merged kitspace/kitspace-v2

Reviewers
Move readme processing to the `processor`

Closes #128

+278 -221

0 comment

15 changed files

AbdulrhmnGhanem

pr closed time in 6 days

issue closedkitspace/kitspace-v2

Sort out readme processing

Right now it's done in Gitea but needs some post-processing to sort out the links. We should decide where we want to do the processing. Ideally we wouldn't have a cheerio dependency in the frontend.

https://github.com/kitspace/kitspace-v2/blob/e4e9ab98ed31d8bc61246ce5b69570dec681323c/frontend/src/utils/index.js#L37-L88

closed time in 6 days

kasbah

Pull request review commentkitspace/kitspace-v2

Move readme processing to the `processor`

+const globule = require('globule')+const path = require('path')+const superagent = require('superagent')+const cheerio = require('cheerio')++const { exists, readFile, writeFile } = require('../utils')+const { GITEA_URL } = require('../env')++function processReadme(events, inputDir, kitspaceYaml, outputDir, projectFullname) {+  if (kitspaceYaml.multi) {+    const projectNames = Object.keys(kitspaceYaml.multi)+    return Promise.all(+      projectNames.map(projectName => {+        const projectOutputDir = path.join(outputDir, projectName)+        const projectKitspaceYaml = kitspaceYaml.multi[projectName]++        return _processReadme(+          events,+          inputDir,+          projectKitspaceYaml,+          projectOutputDir,+          projectFullname,+        )+      }),+    )+  }++  return _processReadme(events, inputDir, kitspaceYaml, outputDir, projectFullname)+}++async function _processReadme(+  events,+  inputDir,+  kitspaceYaml,+  outputDir,+  projectFullname,+) {+  const readmePath = path.join(outputDir, 'readme.json')

Except it just obfuscates the actual content and wraps in JSON for no reason. Please make this .html.

AbdulrhmnGhanem

comment created time in 10 days

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentkitspace/kitspace-v2

Move readme processing to the `processor`

+const globule = require('globule')+const path = require('path')+const superagent = require('superagent')+const cheerio = require('cheerio')++const { exists, readFile, writeFile } = require('../utils')+const { GITEA_URL } = require('../env')++function processReadme(events, inputDir, kitspaceYaml, outputDir, projectFullname) {+  if (kitspaceYaml.multi) {+    const projectNames = Object.keys(kitspaceYaml.multi)+    return Promise.all(+      projectNames.map(projectName => {+        const projectOutputDir = path.join(outputDir, projectName)+        const projectKitspaceYaml = kitspaceYaml.multi[projectName]++        return _processReadme(+          events,+          inputDir,+          projectKitspaceYaml,+          projectOutputDir,+          projectFullname,+        )+      }),+    )+  }++  return _processReadme(events, inputDir, kitspaceYaml, outputDir, projectFullname)+}++async function _processReadme(+  events,+  inputDir,+  kitspaceYaml,+  outputDir,+  projectFullname,+) {+  const readmePath = path.join(outputDir, 'readme.json')

Why .json?

AbdulrhmnGhanem

comment created time in 11 days

Pull request review commentkitspace/kitspace-v2

Move readme processing to the `processor`

+const globule = require('globule')+const path = require('path')+const superagent = require('superagent')+const cheerio = require('cheerio')++const { exists, readFile, writeFile } = require('../utils')+const { GITEA_URL } = require('../env')++function processReadme(events, inputDir, kitspaceYaml, outputDir, projectFullname) {+  if (kitspaceYaml.multi) {+    const projectNames = Object.keys(kitspaceYaml.multi)+    return Promise.all(+      projectNames.map(projectName => {+        const projectOutputDir = path.join(outputDir, projectName)+        const projectKitspaceYaml = kitspaceYaml.multi[projectName]++        return _processReadme(+          events,+          inputDir,+          projectKitspaceYaml,+          projectOutputDir,+          projectFullname,+        )+      }),+    )+  }++  return _processReadme(events, inputDir, kitspaceYaml, outputDir, projectFullname)+}++async function _processReadme(+  events,+  inputDir,+  kitspaceYaml,+  outputDir,+  projectFullname,+) {+  const readmePath = path.join(outputDir, 'readme.json')++  events.emit('in_progress', readmePath)++  if (await exists(readmePath)) {+    events.emit('done', readmePath)+    return+  }++  let readmeInputPath++  if (kitspaceYaml.readme) {+    readmeInputPath = path.join(inputDir, kitspaceYaml.readme)+  } else {+    const readmeFile = findReadmeFile(inputDir)+    if (readmeFile === null) {+      events.emit('failed', readmePath, "couldn't find readme file")+      return+    }+    readmeInputPath = readmeFile+  }++  const rawMarkdown = await readFile(readmeInputPath, { encoding: 'utf8' })+  const readmeAsHTML = await renderMarkdown(rawMarkdown)++  const renderedReadme = postProcessMarkdown(readmeAsHTML, projectFullname)++  await writeFile(readmePath, JSON.stringify({ body: renderedReadme }))+    .then(() => events.emit('done', readmePath))+    .catch(e => events.emit('failed', readmePath, e))+}++function findReadmeFile(inputDir) {+  const readmeFiles = globule.find(+    path.join(inputDir, 'readme?(.markdown|.mdown|.mkdn|.md|.rst)'),+    {+      nocase: true,+    },+  )++  if (readmeFiles.length >= 1) {+    return readmeFiles[0]+  } else {+    return null+  }+}++async function renderMarkdown(rawMarkdown) {+  const giteaMarkdownEndpoint = `${GITEA_URL}/api/v1/markdown/raw`

Instead of accessing it throught the external domain we can go through docker networking, i.e.

  const giteaMarkdownEndpoint = `http://gitea:3000/api/v1/markdown/raw`
AbdulrhmnGhanem

comment created time in 11 days

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentkitspace/kitspace-v2

Move readme processing to the `processor`

 services:       - '5000:5000'     command: /bin/bash --verbose -c 'yarn install && yarn dev'     volumes:+      - /etc/hosts:/etc/hosts
      - /etc/hosts:/etc/hosts:ro
AbdulrhmnGhanem

comment created time in 11 days

pull request commentkitspace/kitspace

Add LouisLab/pivr

It's up! https://kitspace.org/boards/gitlab.com/louislab/pivr/

DavidTadres

comment created time in 14 days

push eventkitspace/kitspace

DavidTadres

commit sha 4c1466129a6b6152bf063e9923b8d98859f6e2dc

Add LouisLab/pivr (#363)

view details

push time in 14 days

PR merged kitspace/kitspace

Add LouisLab/pivr

Add PiVR project to kitespace

+1 -0

0 comment

1 changed file

DavidTadres

pr closed time in 14 days

PR closed kitspace/kitspace

Add EfkanGuvenir/ESP_Desing_Block

Doruk

+1 -0

2 comments

1 changed file

EfkanGuvenir

pr closed time in 14 days

pull request commentkitspace/kitspace

Add EfkanGuvenir/ESP_Desing_Block

Feel free to re-open when you add files.

EfkanGuvenir

comment created time in 14 days