@coolbutuseless@fosstodon.org
@coolbutuseless@fosstodon.org avatar

coolbutuseless

@coolbutuseless@fosstodon.org

Nerd.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar

{yyjsonr} will be my first actual submission to CRAN

So many small things to do for CRAN preparation!

For other packages I got off very lightly! -

My sincere thanks🙏🙏🙏 to them!

https://cran.r-project.org/package=syn
https://cran.r-project.org/package=ggpattern
https://cran.r-project.org/package=rlang

coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar

Next Halloween, I'm going dressed up as "rhub::check_on_solaris()"

coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar

{yyjsonr} update v0.1.3 - a pkg for fast JSON read/write. Approx 4x to 10x faster than jsonlite.

I realised that unless I reduced the pkg scope by a shitload, I was never going to get this on CRAN in a reasonable timeframe :(

  • Remove NDJSON and GeoJSON code to simplify preparation for CRAN. Will re-introduce this code in future release.
  • Updated to YYJSON v0.8.0

https://github.com/coolbutuseless/yyjsonr

coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar

Free project idea:

geom_vwline()

Wrap Paul Murrell's {vwline} package for variable width lines.

https://cran.r-project.org/web/packages/vwline/index.html

coolbutuseless,
@coolbutuseless@fosstodon.org avatar

geom_vline() idea:

There will be some nice chewy details on how the interface would work, and to map a varying aesthetic to line width

Please someone have a go!

coolbutuseless,
@coolbutuseless@fosstodon.org avatar

@urswilke hmm. Maybe. I was thinking of something with a bit more flair. Hard to say if this covers what I'm thinking. Will investigate!

coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar

Introducing {sqlitemeta} - a wrapper for sqlite-createtable-parser.

This pkg will parse a CREATE TABLE statement for sqlite and return a list of meta-information about the table.

It is also posslble to extract the CREATE TABLE statement from an existing sqlite db and do the same - a handy tool for understanding the structure of an existing db.

This is a bit niche, and will probable get rolled in to another sqlite project eventually(!)

https://github.com/coolbutuseless/sqlitemeta

image/png

coolbutuseless,
@coolbutuseless@fosstodon.org avatar

In particular, I was interested in how the interfaces to sqlite worked. E.g. rsqlite, dbi, sqldf

Since sqlite only understands really basic numeric and character types how are the following types handled consistently:

  • logicals
  • dates
  • Numeric and character NAs
  • generic s3 objects
  • anything with classes and attributes.

This is a tool for helping me dig into what's going on.

https://github.com/coolbutuseless/sqlitemeta

coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar

{yyjsonr} update v0.1.12. A pkg for fast read/write JSON/NDJSON/geoJSON

  • Increased buffer size for NDJSON handling (fixes Issue )
  • Fixed off-by-1 error in the reporting of line numbers when there's a file issue.

Thanks @hrbrmstr for the bug report!

https://github.com/coolbutuseless/yyjsonr

coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar

Introducing {rbytecode} - an assembler/disassembler for R's bytecode.

Modern R ultimately runs most(?) code in a stack based virtual machine.

This package allows you to disassemble and assemble R bytecode to understand what is happening right at the core of R execution.

Github: https://github.com/coolbutuseless/rbytecode

Note: This package is also a book which goes into more details & is a reference for R bytecode instruction set.

The book is available for free on leanpub: https://leanpub.com/rbytecode

coolbutuseless, (edited )
@coolbutuseless@fosstodon.org avatar

My advice to get started:

Install the R package and run "disq()" or "dis()" over R code to view it's bytecode.

It's pretty fascinating!

The book is also available as HTML: https://coolbutuseless.github.io/book/rbytecodebook/

There's lots of nitty gritty in there about instruction arguments, stored expressions, closure creation, etc etc (see sample in attached screenshot)

https://github.com/coolbutuseless/rbytecode

coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar

Teaser trailer for my upcoming project!

{rbytecode} = package + book

Write, disassemble and understand(?) R's bytecode.

Book will be free on leanpub (once I figure out their system)

https://leanpub.com/rbytecode

coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar

Introducing {getrect} - a package for partitioning a matrix into rectangular regions enclosing only a single unique value.

some effort is made to minimise the number of rectangles (greedy algorithm).

Pictured:

  1. Matrix of values
  2. Results from using {getrect}

https://github.com/coolbutuseless/getrect

@teunbrand @jonthegeek

A partitioning of the matrix into rectangular regions enclosing just a single unique value.

coolbutuseless,
@coolbutuseless@fosstodon.org avatar

The algo "max rect under histrogram' looks for the maximum rectangle that can be inscribed under a histogram. (See images)

My implementation of the algo is about O(n^3).

There exist O(n) versions! If you felt like a challenge I think the pay-off would be quite good.

See {getrect} for more details: https://github.com/coolbutuseless/getrect

image/png

coolbutuseless,
@coolbutuseless@fosstodon.org avatar

... I've myself.

coolbutuseless, to mastodon
@coolbutuseless@fosstodon.org avatar

Hey auto-complete!

Stop trying to make lowercase happen. It's not going to happen.

guidoschmidt, to art
@guidoschmidt@genart.social avatar

This is just sooo good:
Theo Jansen explaining some of the inner workings of his beach animals:

https://www.strandbeest.com/explains

coolbutuseless,
@coolbutuseless@fosstodon.org avatar

@toxi @emnullfuenf @guidoschmidt @made the AtariST itself is on display at the Chiba Prefecture Museum!

http://www2.chiba-muse.or.jp/www/ART/contents/1695106672072/index.html

coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar
coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar

Swearing isn't cool ...

... but naming a package {fuck} has great potential.

fuck::you()
fuck::this()
fuck::ity()

coolbutuseless,
@coolbutuseless@fosstodon.org avatar

fuck::yes()
fuck::no()
fuck::off()
fuck::me()
fuck::ed()

coolbutuseless, (edited ) to random
@coolbutuseless@fosstodon.org avatar

Introducing {moggy} - a package for creating markdown documents from scratch without using a template.

My use-case for this package is to create markdown documentation directly from meta-information stored in lists/data.frames

The development progress of this package is proportional to the quality of the image of the cat in the logo.

https://github.com/coolbutuseless/moggy

coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar

Developer note: Nearly every single one of my projects has started with these 3 thoughts:

  1. That'd be cool.
  2. It can't be that hard.
  3. It should only take me a few hours to do.

Then I spend the next month* riding the Dunning Kruger wave - realising there's so much I don't know that I don't know! - and thinking my past self a fool for ever thinking this was possible.

...

It is nice when they occasionally pan out...

(*) year

coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar

TIL: someone once attempted refactoring R from C to C++

Project name: CXXR

https://www.cs.kent.ac.uk/projects/cxxr/

coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar

Anyone know how to get a list of functions callable via ".Internal()"?

Or to I have to go to the R source code?

coolbutuseless, to random
@coolbutuseless@fosstodon.org avatar

Today I am pleased to annouce the c64-verse!

I trio of packages for c64 development in

  1. {c64vice} talks to a running VICE c64 emulator to send/receive info, cpu registers, memory dumps etc

  2. {c64asm} is a revamp of {r64}, a pure-R assembler for c64 6502 machine code - including syntax for including R data into code

  3. {c64tass} a wrapper for TASS - the de factor standard in c64 assemblers.

Logo for c64tass package. A hexagon with a Commodore computing logo in the centre.
Logo for c64asm package. A hexagon with a Commodore computing logo in the centre.
Logo for c64vice package. A hexagon with a Commodore computing logo in the centre.

coolbutuseless,
@coolbutuseless@fosstodon.org avatar

Thanks to @gaborcsardi for the 'socketConnection()' tip.

This worked out really well for sending/receiving raw bytes over a TCP socket in order to communicate with VICE emulator.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • tester
  • kavyap
  • thenastyranch
  • anitta
  • normalnudes
  • GTA5RPClips
  • DreamBathrooms
  • mdbf
  • magazineikmin
  • Youngstown
  • ngwrru68w68
  • slotface
  • InstantRegret
  • rosin
  • JUstTest
  • cubers
  • cisconetworking
  • provamag3
  • modclub
  • everett
  • osvaldo12
  • khanakhh
  • Durango
  • Leos
  • megavids
  • ethstaker
  • tacticalgear
  • lostlight
  • All magazines