Repo Home WPDrawBot - (Repo, Home, WP) A powerful programmatic 2D drawing application for MacOS X which generates graphics from Python scripts. (graphics, dev, mac)

Overview

DrawBot Test Bench DrawBot App Builder codecov

DrawBot

DrawBot is a powerful, free application for macOS that invites you to write Python scripts to generate two-dimensional graphics. The built-in graphics primitives support rectangles, ovals, (bezier) paths, polygons, text objects, colors, transparency and much more. You can program multi-page documents and stop-motion animations. Export formats include PDF, SVG, PNG, JPEG, TIFF, animated GIF and MP4 video.

To download the latest version of the app, go to
http://www.drawbot.com/content/download.html


Using DrawBot as a Python module

DrawBot can also be installed as a Python module, the app is not required.

Install

The easiest way is to use pip:

$ pip install git+https://github.com/typemytype/drawbot

To install it manually, follow these instructions:

download: https://github.com/typemytype/drawbot/archive/master.zip

run cd <path/where/you/have/downloaded/and/unzipped/drawBot> run python setup.py install

Usage

import drawBot

drawBot.newDrawing()
drawBot.newPage(1000, 1000)
drawBot.rect(10, 10, 100, 100)
drawBot.saveImage("~/Desktop/aRect.png")
drawBot.endDrawing()

It is adviced to start with newDrawing() and end with endDrawing(), to clear the instruction stack and remove installed fonts.


Compile DrawBot from source

compile drawBot.app (with UI)

Required packages:

(Most of these are available through pip.)

Compile:

DrawBot is compiled with py2app into an application package.

cd path/To/drawBot
python setupApp.py py2app

compile drawBot Python module only

This module only works on Mac OS as it requires PyObjC, AppKit, CoreText Quartz and more.

Required packages:

Compile:

cd path/To/drawBot
python setup.py install

Release protocol

Comments
  • PDF header

    PDF header

    when importing DrawBot and generating a PDF, I'm getting an error after an update;

    failed to find PDF header:%PDF' not found.`

    as a warning, but second PDF won't build with this error:

    It is advised to use 'size()' at the top of a script

    Is this a new issue or am I doing something wrong?

    opened by michielkauwatjoe 25
  • Formatted string origin with different alignment

    Formatted string origin with different alignment

    I am using FormattedString() with "right" and "center" alignments for multiline strings, and noticed that text() will draw it the origin as the bottom left corner of the final line of the text. This means that for right and centered text, I cannot easily predict the position of the text relative to the origin point, because it is dependent on the length of the content in the last line.

    A demo:

    for alignment in ['center', 'right']:
        for myString in ['AA\nAAAA', 'AAAA\nAA']:
            newPage(1000, 1000)
            translate(250, 250)
            oval(-10, -10, 20, 20)
            fs = FormattedString(myString, align=alignment, fontSize=200)
            b = BezierPath()
            b.text(fs)
            drawPath(b)
    

    I'm not sure if there's actually an issue to be solved here, but I am curious if there a way to get them placed consistently?

    Of course this is not an issue when using textBox() instead of text(), but unfortunately I am trying to use this in conjunction BezierPath() which does not have a textBox() method.

    Have you considered making the origin for center-aligned text at the bottom center, and for right-aligned at the bottom right? (this is similar to what happens to alignments of basic text fields in Illustrator). I understand that a FormattedString can have more than one alignment, so maybe that’s not a perfect solution either.

    I think I might be able to work around this by calculating the final line of the string, making a separate FormattedString object, getting the textSize()[0] of that, and then offsetting the text object by that amount. Just wondering if there’s a more straightforward way before I go that route.

    As always, many many thanks!

    opened by djrrb 22
  • Numpy again (and NetworkX) in DrawBotPy3

    Numpy again (and NetworkX) in DrawBotPy3

    (PS: since Just closed the last version of this issue, I can't re-open it—sorry.)

    Hate to dig up an old issue, but I'm at a point in a current project in DBPy3 where I am ahead of my skis regarding graph and network functions, and could sure use numpy and NetworkX. I can import numpy in the 2.7 version of DrawBot thanks to last year's thread and Just/Frederik's help (thanks again, guys), but not NetworkX—and I can't import either one in Py3.

    I'm happy to download and install these modules by hand and update directories myself—for whatever reason, perhaps because of permissions issues with a school machine, who knows—I can't install these modules with pip (either pip can't find them or appropriate versions of them, or DB can't find them once they're installed, and sudo runs me into permissions errors). I just need to know where to put them and what edits to what scripts need making. (Again feeling the shame of being a Python dilettante, sorry.)

    opened by MauriceMeilleur 20
  • numpy headaches

    numpy headaches

    This is less an issue than a question, and probably one somebody with more experience than I have wouldn't have problems with at all.

    But here goes: I can't for the life of me get scripts to import numpy. scimath, math, work fine, but here's the error thrown if I import numpy:

    Traceback (most recent call last): File "", line 1, in File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/init.py", line 153, in File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/add_newdocs.py", line 13, in File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/lib/init.py", line 17, in ImportError: cannot import name scimath

    opened by MauriceMeilleur 19
  • Issue with application of OpenType features

    Issue with application of OpenType features

    Hi,

    I’m having issues applying OpenType features to text in a PDF. I’ve rewritten my own renderer to write original drawBot code so I can test it in the main DrawBot.app to rule out problems with my own code.

    For instance, the sups feature doesn’t apply. I’ve collected the files to test here. The example with the sups feature is in line 408 (result shows on page 3 in the PDF). The feature gets turned on beforehand and turned off afterwards. I found this to cause less confusion in the rendering than explicitly setting all available features at once.

    What puzzles me: If I reduce the code to just the necessary lines to render that text with the sups feature, it renders fine (never mind that the feature isn’t written professionally yet, as in all the glyphs in the example would get replaced at the moment, not contextually...). That means that somewhere along the way someone got confused with the commands to the point where features don’t get applied properly anymore.

    So this works, which is exactly the same code, only much less:

    import os
    
    newPage(595.275590551, 841.88976378)
    installFont(os.path.join(os.path.dirname(__file__), 'NonameSans-Regular.otf'))
    installFont(os.path.join(os.path.dirname(__file__), 'NonameSans-Bold.otf'))
    
    ########################
    
    cmykFill(0.0, 0.0, 0.0, 1.0, 1.0)
    stroke(None)
    strokeWidth(None)
    lineHeight(28.8)
    
    font('NonameSans-Bold')
    fontSize(24)
    language(None)
    textBox(u'''120m2''', (255.118110236, 501.732283465, 141.732283465, 56.6929133858), align = 'center')
    
    ########################
    
    fill(1.0, 0.411764705882, 0.490196078431, 1.0)
    stroke(None)
    strokeWidth(None)
    lineHeight(24.0)
    
    font('NonameSans-Regular')
    fontSize(20)
    language(None)
    textBox(u'''→''', (396.850393701, 527.811023622, 28.3464566929, 28.3464566929), align = 'center')
    
    ########################
    
    cmykFill(0.0, 0.0, 0.0, 1.0, 1.0)
    stroke(None)
    strokeWidth(None)
    lineHeight(28.8)
    
    font('NonameSans-Bold')
    fontSize(24)
    openTypeFeatures(sups=True)
    language(None)
    textBox(u'''120m2''', (425.196850394, 501.732283465, 141.732283465, 56.6929133858), align = 'center')
    openTypeFeatures(sups=False)
    
    opened by yanone 19
  • proposal: add support for ID and Class attributes to BezierPath

    proposal: add support for ID and Class attributes to BezierPath

    DrawBot can generate SVGs; SVGs can be embedded in HTML and styled with CSS just like the rest of the page.

    SVG objects need an ID or class so that CSS can refer to them. in the example below, id and class attributes were added manually after the SVG was generated.

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>SVG test</title>
    <style>
        svg { background-color: yellow; }
        #circle { fill: grey; }
        #circle:hover { stroke: magenta; }
        #square { stroke: red; stroke-width: 20px; }
        .shape:hover { fill: black !important; }
    </style>
    </head>
    <body>
    <!-- embedded SVG -->
    <svg height="800" version="1.1" width="800" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
     <path id='square' class='shape' d="M100,100 l400,0 l0,400 l-400,0 Z M100,100" fill="rgb(0,0,255)" transform="matrix(1,0,0,-1,0,800)"/>
     <path id='circle' class='shape' d="M641.42,358.58 c78.1,78.1,78.1,204.74,0,282.84 c-78.1,78.1,-204.74,78.1,-282.84,0 c-78.1,-78.1,-78.1,-204.74,0,-282.84 c78.1,-78.1,204.74,-78.1,282.84,0 Z M641.42,358.58" fill="rgb(255,0,0)" stroke="rgb(0,255,0)" stroke-width="20" transform="matrix(1,0,0,-1,0,800)"/>
    </svg>
    </body>
    </html>
    

    Proposal

    add support for setting an ID and/or class when the BezierPath is created:

    size(800, 800)
    
    B1 = BezierPath(ID='square', Class='shape')
    B1.rect(100, 100, 400, 400)
    fill(0, 0, 1)
    drawPath(B1)
    
    B2 = BezierPath(ID='circle', Class='shape')
    B2.oval(300, 300, 400, 400)
    fill(1, 0, 0)
    stroke(0, 1, 0)
    strokeWidth(20)
    drawPath(B2)
    
    saveImage('output.svg')
    

    thanks!

    opened by gferreira 18
  • Fonts are not reloaded even when changing on disk

    Fonts are not reloaded even when changing on disk

    I am using DrawBot to create proofs, the fonts used in those proofs are re-generated frequently. When I run the script from the DrawBot window, the font file that is picked up first stays active forever.

    My script is wrapped like this:

    newDrawing()
    	for fontFile in fontFiles:
    		newPage()
    		fs = FormattedString(
    			proofText, fontFile
    		)
    		text(fs)
    	for fontFile in fontFiles:
    		uninstallFont(fontFile)
    endDrawing()
    

    I explicitly added the newDrawing() and endDrawing() hoping it would have some kind of effect, but no. It works as expected when I run the script from the command line, but it sometimes is nice to have that visual output …

    bug 
    opened by frankrolf 18
  • *** DrawBot warning: OpenType feature 'numr/'dnom' not available ***

    *** DrawBot warning: OpenType feature 'numr/'dnom' not available ***

    Hi there, getting an error when trying to access Numerator numr and Denominator dnom features, not sure why!

    DrawBot: 3.118.1 (Extension) System: Mac OS 10.13.6

    Take a font like Source Serif Bold, which has simple numr and dnom features as follows:

    @FIG_LINING_TAB    =  [  zero       one       two       three       four       five       six       seven       eight       nine       ];
    @FIG_NUMR          =  [  zero.numr  one.numr  two.numr  three.numr  four.numr  five.numr  six.numr  seven.numr  eight.numr  nine.numr  ];
    @FIG_DNOM          =  [  zero.dnom  one.dnom  two.dnom  three.dnom  four.dnom  five.dnom  six.dnom  seven.dnom  eight.dnom  nine.dnom  ];
    
    @PUNCT_SMALL_FIG    = [ bracketleft      bracketright      parenleft      parenright      period      comma      ];
    @PUNCT_NUMR         = [ bracketleft.numr bracketright.numr parenleft.numr parenright.numr period.numr comma.numr ];
    @PUNCT_DNOM         = [ bracketleft.dnom bracketright.dnom parenleft.dnom parenright.dnom period.dnom comma.dnom ];
    
    #--------------------------------------
    feature numr { # Numerators
        lookup NUMR {
            sub @FIG_LINING_TAB by @FIG_NUMR;
            sub @PUNCT_SMALL_FIG by @PUNCT_NUMR;
        } NUMR;
    } numr;
    
    
    #--------------------------------------
    feature dnom { # Denominators
        sub @FIG_LINING_TAB by @FIG_DNOM;
        sub @PUNCT_SMALL_FIG by @PUNCT_DNOM;
    } dnom;
    

    And then the following DrawBot code:

    import drawBot as db
    
    db.newPage(500,100)
    s = db.FormattedString("123/45679",
        font="SourceSerifPro-Bold.otf",
        fontSize=100,
        openTypeFeatures={"dnom": True}
    )
    
    db.text(s, (20,20))
    

    The above results in

    *** DrawBot warning: OpenType feature 'dnom' not available ***
    

    Same with numr. If you replace dnom with frac, the code works, and both numerators and denominators show up.

    The numr and dnom features work in other programs (like Adobe InDesign), and FeaturePreview. Any idea why they aren't working here?

    DrawBot Error.zip

    opened by colinmford 16
  • Weird FormattedString issue on 10.15

    Weird FormattedString issue on 10.15

    I installed the 10.15 Beta on my secondary computer just to poke around a bit. When trying out some basic DrawBot, I stumbled upon this problem:

    content = 'abc'
    font_name = 'LucidaGrande'
    fs = FormattedString()
    fs.append(content, font=font_name, fontSize=20)
    fs.append(' ')
    fs.append(font_name, font='InputMono-Regular', fontSize=10)
    
    text(fs, (100, 200))
    

    The script runs, and displays output, but also the following traceback:

    Traceback (most recent call last):
      File "<untitled>", line 8, in <module>
      File "drawBot/drawBotDrawingTools.pyc", line 1611, in text
      File "drawBot/drawBotDrawingTools.pyc", line 1779, in textBox
      File "drawBot/context/baseContext.pyc", line 2310, in clippedText
      File "drawBot/context/baseContext.pyc", line 1180, in __getitem__
      File "drawBot/context/baseContext.pyc", line 904, in __init__
      File "drawBot/context/baseContext.pyc", line 912, in _setAttribute
      File "drawBot/context/baseContext.pyc", line 1354, in openTypeFeatures
      File "drawBot/context/baseContext.pyc", line 1368, in listOpenTypeFeatures
      File "drawBot/misc.pyc", line 362, in wrapper
      File "drawBot/context/tools/openType.pyc", line 509, in getFeatureTagsForFontName
      File "drawBot/context/tools/openType.pyc", line 495, in getFeatureTagsForDescriptions
      File "objc/_convenience_mapping.pyc", line 18, in __getitem__objectForKey_
      File "objc/_convenience.pyc", line 101, in container_unwrap
    KeyError: 'CTFeatureSelectorIdentifier'
    
    

    It is entirely possible this has nothing to do with DrawBot at all, but I thought it might be interesting to know about it.

    opened by frankrolf 15
  • Is it possible to detect missing glyphs in a font? Are there good workarounds?

    Is it possible to detect missing glyphs in a font? Are there good workarounds?

    I'm working on a simple tool for Drawbot (code on GitHub) to juxtapose characters in a string in letters from multiple fonts. The ultimate intent is to test fonts in early development, where I want to determine the proper relative proportions of characters (e.g. find the best x-height between a regular and a bold) and check that different styles in a larger type system are stylistically related (e.g. see that a sans and serif have a similar feeling between letters).

    For example, here's a partially-drawn lowercase set against two existing fonts:

    image

    This example uses a script font to make it obvious where characters are not-yet drawn. However, it would be more effective to have more control over the fallback font in these spaces that are present, but not the focus. It would be nice to do something like make these into light-gray letters or display notdef glyphs.

    A few things that seem like they might potentially help, though I haven't been able to accomplish them / find methods for them yet:

    • Directly detecting if a glyph is missing from the target font, and triggering some code
    • Detecting some UFO parameter of the fallback font, when the fallback font is used, and use that to change its size/color/content. E.g. checking if a character's x-height is equal to the x-height of the fallback font, then manipulating it.
    • Creating a list of all existing characters in a given font, and if the character in the test string doesn't match one of those, triggering some code.

    Hacky ways I've considered are:

    • Making all glyphs in Robofont, but leaving them empty until I can draw them (this would make the tool less helpful for others, though)
    • Finding a system font on macOS that is entirely bullets/rectangles/something similar, though even if such a system font exists (I don't know of any), this still wouldn't allow the flexibility or control that would be ideal to make this truly useful.

    I've already asked @justvanrossum, and he suggested filing an issue here, as detecting missing glyphs is not something he is aware of, but something which might be useful. If there is a simpler way to handle a case like this, I'd be excited to learn about it! If it would take building a new feature, however, I'd be happy to contribute however I can.

    Thanks for building such a great set of software!

    opened by thundernixon 15
  • [question] position of first baseline?

    [question] position of first baseline?

    In a text box, how does DrawBot specify the position of the first baseline for a given font? I am currently working on a script that layers different fonts, and need to calculate the baseline offset – unfortunately that’s trickier than expected.

    A common assumption is just subtracting the hhea.ascent value from the top of the text frame, but it’s not that simple – especially in fonts where hhea.ascent + |hhea.descent| != 1000.

    Here is my test data (for simplicity’s sake, font size = UPM = 1000):

        # SourceSansPro-Bold
        # head.yMax: 1009
        # hhea.ascent: 984
        # hhea.descent: -273
        # hhea.lineGap: 0
        # baseline is 855 below top of text frame
    
        # SourceSerifPro-Light
        # head.yMax: 976
        # hhea.ascent: 1036
        # hhea.descent: -335
        # hhea.lineGap: 0
        # baseline is 850 below top of text frame
    
        # MyriadPro-Light
        # head.yMax: 935
        # hhea.ascent: 750
        # hhea.descent: -250
        # hhea.lineGap: 200
        # baseline is 750 below top of text frame
    

    This may have been solved by @petrvanblokland – I assume pageBot can deal with baselines?

    question 
    opened by frankrolf 15
  • Cancelling with command-period crahses hard

    Cancelling with command-period crahses hard

    import time
    
    for i in range(100):
        print(i)
        time.sleep(0.2)
    

    Type command-period while the above is running. It exists with a hard crash Illegal instruction: 4

    opened by justvanrossum 8
  • Code completion currently doesn't seem to work

    Code completion currently doesn't seem to work

    Traceback (most recent call last):
      File "/Users/just/code/git/drawbot/dist/DrawBot.app/Contents/Resources/lib/python3.9/drawBot/ui/codeEditor.py", line 288, in _pythonWordCompletions
    TypeError: __init__() got an unexpected keyword argument 'source'
    
    opened by justvanrossum 0
  • missing module »cmath«

    missing module »cmath«

    Hi all, since the update to 3.129 (python3.10) it seems that the module »cmath« is missing. When I'm using the pandas-tool (https://pandas.pydata.org) or just using import cmath an error Message pops up: »ModuleNotFoundError: No module named 'cmath'«

    opened by READ 5
  • deprecated workflow

    deprecated workflow

    Warning: The set-output command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

    https://github.com/typemytype/drawbot/actions/runs/3750328273/jobs/6369899166#step:12:10

    opened by typemytype 1
  • listNamedInstances return wrong value

    listNamedInstances return wrong value

    Hi,

    I tried recently to get instances name of a variable using listNamedInstances(fontPath) I tried different variable font (mine and some from Google Font) and the function always return an OrderedDict which contain only the first instance.

    Here are some results with Google Fonts :

    OpenSans OrderedDict([('OpenSansRoman-Light', {'wght': 800.0, 'wdth': 75.0})])

    Montserrat OrderedDict([('Montserrat-Thin', {'wght': 900.0})])

    Raleway OrderedDict([('Raleway-Thin', {'wght': 900.0})])

    Inter OrderedDict([('Inter-Regular_Thin', {'wght': 900.0, 'slnt': -10.0})])

    opened by HugoJourdan 5
Releases(3.129)
  • 3.129(Dec 22, 2022)

    • Upgrade to python 3.9!!
    • textBox box: negative rectangles will be normalized.
    • Fix bug while extracting variable font name ids.
    • Improve ImageObject generators.
    • Add support for formatting code, see Python menu.
    • Improve support for pathlib.Path where ever a path is needed.
    • Support for saveImage("NSImage") and saveImage("PIL") returning image objects.
    • Add support for norm, lerp and remap.
    • Support formattedText.appendGlyph(index): adding glyphs by index.
    • Add with drawing() wrapping newDrawing() and endDrawing().
    Source code(tar.gz)
    Source code(zip)
    DrawBot.dmg(51.88 MB)
  • 3.128(Aug 9, 2021)

  • 3.127(Apr 29, 2021)

    • Allow Path objects in places where a path is an argument: saveImage(pathObject), image(pathObject, ...)
    • Add support for asyncio by lauching the app with corefoundationasyncio.
    • Remove mov context in favor of mp4 as QTKit is not supported anymore.
    • Always draw a white background while rendering to mp4.
    • Improve reading out and using fonts from disk, use them direclty instead of installing them.
    • Update documentation.
    Source code(tar.gz)
    Source code(zip)
    DrawBot.dmg(45.61 MB)
  • 3.126(Jun 2, 2020)

    • Improve update checker.
    • Fix docs for listOpenTypeFeatures.
    • Add argument while saving an animated gif: loop.
    • Add argument while saving an image: antiAliasing.
    • Improve the difference between kerning (an OpenType feature) and tracking (adding white space between characters).
    • Add textBoxCharacterBounds(text, box) returning a list of typesetted bounding boxes.
    • Improve text(..) typesetting with multiline text and paragraph styles.
    • Add formattedString.url(url).
    • Add linkURL(url, box).
    • Add option continuous in Variable(.., continuous=False).
    Source code(tar.gz)
    Source code(zip)
    DrawBot.dmg(45.16 MB)
  • 3.125(Apr 22, 2020)

  • 3.124(Mar 28, 2020)

  • 3.123(Mar 3, 2020)

    • Fully notarized and built with GitHub Actions!!!!
    • Improve pip installer.
    • Support viewBox in svg output.
    • Point attributes of a BezierPath are immutable.
    • Fix bug when an FormattedString contains an empty last line.
    • Don't optimize an empty BezierPath.
    • Improve updater message.
    • Upgrade code editor lexer to python3.
    • Upgrade internal tool potrace and mkbitmap.
    • Add context-specific attributes for BezierPath and FormattedString: svgLink, svgID, svgClass.
    Source code(tar.gz)
    Source code(zip)
    DrawBot.dmg(44.74 MB)
  • 3.122(Nov 3, 2019)

    • Adding bezierPath.expandStroke(width, lineCap="round", lineJoin="round", miterLimit=10) (thanks to Bahman Eslami)
    • Improved internal OpenType feature tags setting
    • Improved complex formattedString type setting
    • Improved alignment with text() and FormattedString
    • Added a DrawBot frontend for pip/PyPI to make it super easy to install third-party packages: see menu Python -> Install Python Packages
    • Fixed text stroke behavior (but is a breaking change): strokeWidth on text no longer scales with the fontSize
    • Removed support for .mov export on 10.15 and up (QTKit is no longer supported there)
    • Fixed extracting single frames from .gif files
    • Improved setup.py, so drawbot-as-a-module can be easily installed with pip using a github URL
    • All test now run on Travis CI (and soon also on GitHub Actions)
    • Removed Python 2 code
    • Many small issues were fixed
    Source code(tar.gz)
    Source code(zip)
    DrawBot.dmg(49.96 MB)
Owner
Frederik Berlaen
Frederik Berlaen
Backend/API for the Mumble.dev, an open source social media application.

Welcome to the Mumble Api Repository Getting Started If you are trying to use this project for the first time, you can get up and running by following

Dennis Ivy 189 Dec 27, 2022
Heads Down Application for Mac OSX

Heads Down A Mac app that lives in your ribbon—with a click of the mouse, temporarily block distracting websites and applications to encourage "heads

null 20 Mar 10, 2021
PyPIContents is an application that generates a Module Index from the Python Package Index (PyPI) and also from various versions of the Python Standard Library.

PyPIContents is an application that generates a Module Index from the Python Package Index (PyPI) and also from various versions of the Python Standar

Collage Labs 10 Nov 19, 2022
Camera track the tip of a pen to use as a drawing tablet

cablet Camera track the tip of a pen to use as a drawing tablet Setup You will need: Writing utensil with a colored tip (preferably blue or green) Bac

null 14 Feb 20, 2022
A Python application that helps users determine their calorie intake, and automatically generates customized weekly meal and workout plans based on metrics computed using their physical parameters

A Python application that helps users determine their calorie intake, and automatically generates customized weekly meal and workout plans based on metrics computed using their physical parameters

Anam Iqbal 1 Jan 13, 2022
Visualize Data From Stray Scanner https://keke.dev/blog/2021/03/10/Stray-Scanner.html

StrayVisualizer A set of scripts to work with data collected using Stray Scanner. Usage Installing Dependencies Install dependencies with pip -r requi

Kenneth Blomqvist 45 Dec 30, 2022
Dev-meme - A repository that contains memes just for people like us

A repository that contains memes just for people like us. Coders are constantly

Padmashree Jha 4 Oct 31, 2022
A web application which you can search, buy or sell shares with current prices which provided by IEX.

CS50 - Stock Exchange A web application which you can search, buy or sell shares with current prices which provided by IEX. Table of Contents Setup St

null 1 May 28, 2022
python scripts - mostly automation scripts

python python scripts - mostly automation scripts You can set your environment in various ways bash #!/bin/bash python - locally on remote host #!/bi

Enyi 1 Jan 5, 2022
Runs macOS on linux with qemu.

mac-on-linux-with-qemu Runs macOS on linux with qemu. Pre-requisites qemu-system-x86_64 dmg2img pulseaudio python[click] Usage After cloning the repos

Arindam Das 177 Dec 26, 2022
Tomador de ramos UC automatico para Windows, Linux y macOS

auto-ramos v2.0 Tomador de ramos UC automatico para Windows, Linux y macOS Funcion Este script de Python tiene como principal objetivo hacer que la to

Open Source eUC 13 Jun 29, 2022
ColabFold / AlphaFold2_advanced on your local PC (or macOS)

LocalColabFold ColabFold / AlphaFold2_advanced on your local PC (or macOS) Installation For Linux Make sure curl and wget commands are already install

Yoshitaka Moriwaki 207 Dec 22, 2022
String Spy is a project aimed at improving MacOS defenses.

String Spy is a project aimed at improving MacOS defenses. It allows users to constantly monitor all running processes for user-defined strings, and if it detects a process with such a string it will log the PID, process path, and user running the process. It will also (optionally) kill the process. For certain default C2s and other malicious software, this tool can quickly log and stop malicious behavior that normal AV does not recognize, and allows for customization.

null 10 Dec 13, 2022
🍏 Make Thinc faster on macOS by calling into Apple's native Accelerate library

?? Make Thinc faster on macOS by calling into Apple's native Accelerate library

Explosion 81 Nov 26, 2022
Dump Data from FTDI Serial Port to Binary File on MacOS

Dump Data from FTDI Serial Port to Binary File on MacOS

pandy song 1 Nov 24, 2021
Simple macOS StatusBar app to remind you to unplug your laptop when sufficiently charged

ChargeMon Simple macOS StatusBar app to monitor battery charge status and remind you to unplug your Mac when the battery is sufficiently charged Overv

Rhet Turnbull 5 Jan 25, 2022
TinyBar - Tiny MacOS menu bar utility to track price dynamics for assets on TinyMan.org

?? About A simple MacOS menu bar app to display current coins from most popular Liquidity Pools on TinyMan.org

Al 8 Dec 23, 2022
You can change your mac address with this program.

1 - Warning! You can use this program with Kali Linux. Therefore if you don't install the Kali Linux. Firstly you need to install Kali Linux. 2 - Star

Mustafa Bahadır Doğrusöz 1 Jun 10, 2022
Automation of VASP DFT workflows with ASE - application scripts

This repo contains a library that aims at automatizing some Density Functional Theory (DFT) workflows in VASP by using the ASE toolkit.

Frank Niessen 5 Sep 6, 2022