Giter Site home page Giter Site logo

dfile's Introduction

dd86k

Hi there, I'm dd!

I'm interested in software engineering, system administration, telecommunications, and technical documentation.

My main programming language is the D programming language. I also know a good amount of C, C#, PHP, and JavaScript.

Available on: GitHub, Gitlab, and Codeberg.

A more complete portfolio is available online.

Active Projects

Project Links Description
alicedbg GitHub, GitLab, Codeberg Debugger toolkit and shell
aliceserver GitHub, GitLab, Codeberg Debugger server implementing DAP
ddhx GitHub, GitLab Hex viewer
ddgst GitHub, GitLab Hashing multithreaded utility
binco GitHub Binary-text encoder/decoder
sha3-d GitHub Keccak-f[1600,24] (SHA-3) implementation
blake2-d GitHub BLAKE2 implementation (s and b variants)
lateterm GitHub, GitLab WordPress "DOS" theme
npp_vs2012 GitHub Notepad++ "VS2012" theme

dfile's People

Contributors

dd86k avatar gsass1 avatar ljmf00 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

ljmf00 gsass1

dfile's Issues

Move to a database-type model

Preface

Eventually, dfile will be bloated with file information and this information needs to go somewhere if I want the executable image load times to stay low (right now it's still on-pair with file luckily).

During the experimental phase, an -e [<File>] switch shall be used.

Possible Solutions

1. One File Per Format

One solution could be a custom binary format containing the information about the format for every file. For example, pe32 would have the PE32 binary format encodings and so on, which would result in many, many magic files in a local folder called magic, like so:

magic
+- png
+- pe32
+- felf32

And so on.

This may be the fastest solution in running time. Also may avoid any licensing issues (if there are and if I'm silly) and the -f option may still be implemented.

I will design the format.

2. Use file's Magic Files

An interesting solution would be using file's magic files, the only trouble would be making the module that understands these files, but will save time about on development time compared to Solution 1.

3. Use a Master Database

3A. Text File

Slow solution, and may be messy in the long run so personally I don't recommend this.

3B. SQL-like

Even slower than the text solution.

Decision

Right now I haven't decided but I'm in for Solution 1. Any suggestions are appreciated too.

Adding img file infos?

Would be nice to get the infos of image files (.png, .gif, .jpg)
like the output of "identify -ping" from ImageMagic
especially the size in pixels.

  • detecting rgb or cmyc .jpg
  • additional meta data as date and other .jpg infos.
    but this might result in a very long todo-list.

Add DMG

Mostly floppy disk images or Apple disks.

Move from scpy

It's been fun but I think I'd rather use fread per case.

Peek inside archives with --peek

A new CLI switch, --peek, would allow dfile to get the first item of an archive-type file (e.g. Tar).

However it will need to have a global static signature buffer and a new variable for some kind of offset.

Check WAV

It may happen the last WAV file info isn't printed on screen, used -gs.

Ref: WANO-FULL-INSTRUMENTAL.wav

BPG and FLIF

Both types are recent and open-source, so getting documentation should be easy.

-r : Recursive

Only need to do a SpanMode local obj and the cli switch.

-b : Use base 10 notation

A -b switch should be used when the user wants to use base 10 notations for sizes in KiB (1000²) for example.

Implement -t : Type name only.

For example, users may be making scripts that outputs to a CVS file and only would want a unique identifier (not talking about a UID, but a short and sweet string identifier, or a number (-n?)).

Another example would be dfile -t flourish.mid would simply give MIDI instead of Multiple track MIDI using 16 tracks at 384 ticks per quarter-note.

This issue will only be more important if such feature is requested (or pinged, or something).

Follow MS Shortcut files

Check MS-SHLLINK. Following the shortcut would only be available to Windows since Linux never inherits the Windows path notation.

-m: Magic file

file runs on a compiled magic file (/usr/share/file/magic.mgc) and it would be interesting to use it, but only if the user specifies it.

Syntax:
-m
Use a magic file.
-M
Use default magic file if available.

If selected, the flow is transferred to a whole new module.

ISO-9660 file reporting goes off past 4 GB

Take the CentOS 7 "everything" ISO, which is 8 GB, and try to scan it, even on ~master, it reports 3.71 GB (3.99 GiB) which is either:

  • A bug in dfile
  • A bug in the ISO file itself
  • A bug in the ISO specifications (which I doubt since multiplying a 2-byte and 4-byte number together can give a very, very large number)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.