snearch + libraries_programmers_tools   175

Ask HN: How do you OCR your receipts and bills in 2018? | Hacker News
smnv 7 months ago [-]

Most receipts in my country have a qr code at the bottom with the link to the receipt in human and machine readable format. In the next year this will be mandatory for everyone. Russia.
Belege_scannen  digitalisieren  Internet  Handel  Innovation  Russland  OCR  Tools_Software  libraries_programmers_tools 
february 2019 by snearch
> I'm not exactly sure why I started reaching for Python instead. Oh, I am quit... | Hacker News
ethagnawl 8 days ago [-]

If it's not already on your radar, you should have a look at the Shelly library on Hackage.

marcosdumay 7 days ago [-]

Oh, I know about it. And it looks great.
It's basically the reason the next language I'll try on the shell is Haskell. But it takes looking at the documentation, so I'll leave it to try when I'm not in a rush. For shell scripting, that may take a long time.

Haskell  scripting  Shelly  libraries_programmers_tools  Shell  Linux 
november 2018 by snearch
An Interview With Haskell Developer Edward Kmett | _theInitialCommit
Nowadays there seems to be a whole approach to software development in the functional programming community that builds up large states and then drills into them using lenses. This arose mostly among the very pragmatic “get it done and ship it” web development community.
I love that there always something to learn. But I think the thing that I love most about this community is that it goes out of its way to destroy the notion that there is a dichotomy between the elegant solution and a fast solution. The Haskell community will keep throwing people with PhD’s at a problem until they come up with a way to make the elegant solution compile into the fast solution – and the type system offers enough structure that unlike most other popular languages, these code transformations are possible and safe.

The thing I think most people hate about this community is that there is always something else you feel you HAVE to learn.
TOP  Inspiration  Haskell  higher_quality  Kmett_Edward  lenses  Lens  libraries_programmers_tools  networking_people  like_minded_people  PROs 
january 2017 by snearch
I made an iPhone game with PhoneGap and won't do it again | Hacker News
TJSomething 8 hours ago [-]

I personally would recommend developing games in C++ for both platforms. You're not going to be heavily using any of the APIs that necessitate using Obj-C or Java. It's just OpenGL ES and other low level APIs. Additionally, it's easy to port between iOS and Android and you can use a much wider variety of libraries.


fit2rule 16 minutes ago [-]

> Cross platform mobile games when you have C++ skills: Use C++ with OpenGL and share most of the code.

I would recommend MOAI - gives you the best bang for the buck, as long as you're willing to learn Lua to do all the app-layer stuff, and leave the MOAI engine to manage the performance-critical resources...
games  iOS  iPhone  Development  Tools_Software  libraries_programmers_tools  programming  game_engine  C++  OpenGL  Lua 
november 2016 by snearch
What's a good 'scripting' functional programming language? - Quora
Recently, I've been writing most of my shell scripts in Haskell. For example, here's a little pager script I wrote that has a few different command line options and calls out to emacsclient. It's actually quite nice: when I write something like git log in my Emacs shell, it just opens up a new buffer right in the same Emacs session which lets me easily move around the output, copy parts to other buffers or even save it somewhere.

Unfortunately, Haskell is a bit verbose for common script tasks by default. But this isn't a fault of the language—it's just a library problem. And people have written libraries to make shell scripting much nicer, like Shelly. (There are code samples at the very bottom of the readme; it's a shame they're not more prominent.)

One nice thing about using Haskell for scripting like this is that the various parts of Shelly are just normal Haskell values and functions, which makes it very easy to build up abstractions with them. For example, it's just one line of code to wrap up a common command in a function so that y ou don't have to copy and paste parts of it everywhere.
Haskell  scripting  Shelly  libraries_programmers_tools  Shell 
may 2016 by snearch
Programmiersprache: IBM bringt Swift auf den Server und in die Cloud | heise online
Apples Strategie, Swift unter eine Open-Source-Lizenz und auch für Linux zur Verfügung zu stellen, scheint tatsächlich zu einem größeren Ökosystem zu führen. Beispielsweise wurde kürzlich mit Swifton ein von Ruby on Rails beeinflusstes Webframework für Swift vorgestellt, das unter OS X, aber auch unter Linux läuft. Relativ neu ist darüber hinaus mit RxSwift ein Projekt, das die reaktive Programmierung mit Swift ermöglichen soll.
Swift  Programming_Language  server_side  backend  IBM  framework  Swifton  Webdevelopment  reactive  programming  RxSwift  libraries_programmers_tools 
april 2016 by snearch
Can I use Elm on the backend of a server? : elm
If you want to use FRP in Haskell, there are some great libraries that are just a bit harder than Elm (e.g. Netwire and Banana) and you can combine them with a socket lib. Although, for a server you might want to use some pipe library because they're built for that.
Haskell  FRP  Webdevelopment  backend  server_side  Tipps_und_Tricks  libraries_programmers_tools  Netwire  Banana  Sockets  Pipe 
february 2016 by snearch
Binary serialisation made even easier: no boilerplate with Cerealed | Átila on Code
o when I wrote a serialisation library, I used it in real-life programs and made sure I didn’t have to repeat myself as I had to when I wrote similar code in C++. The fact that D allows me to get the compiler to write so much code for me, easily, is probably the main reason why it’s my favourite language.
PROs  Serialization  libraries_programmers_tools  cerealed  Dlang 
august 2015 by snearch
H2O is a very fast HTTP server written in C. It can also be used as a library. : programming
[–]VikingCoder 476 points 1 day ago*

I worked at a company once that had a really decent HTTP server library... That they put in every program.

You'd launch an app, and to debug it, you'd access http://localhost:9001. From there, you could go to URLs for different libraries in the app. Like, if you had a compression library, you could go http://localhost:9001/compression. It would show stats about the recent work it had done, how long it took, how much CPU, RAM, disk it used. The state of variables now, etc. You could click a button to get it to dump its cache, etc.

If you were running a service on a remote machine, accessing it over HTTP to control it was just awesome. http://r2d2:9001/restart. http://r2d2:9001/quit. http://r2d2:9001/logfile.

Oh, and the services running on that remote machine would register with a system-level monitor. So, if you went to http://r2d2/services, you could see a list of links to connect to all of the running services.

...and every service registered with a global monitor for that service. So, if you knew a Potato process was running somewhere, but you weren't sure which machine it was on, you could find it by going to http://globalmonitor/Potato, and you'd see a list of machines it was running on.

Just all kinds of awesomeness were possible. Can not recommend enough.

And, I mean like, programs with a GUI. Like, picture a game. Except on my second monitor, I had Chrome open, talking to the game's engine. I could use things like WebSockets to stream data to the browser. Like, every time the game engine rendered a shot, I could update it (VNC-style) in the browser window. Except annotated with stats, etc. It was just the most useful way to organize different debug information.

And what was great was that writing a library, and wanting to output information, you wouldn't write it to std out... You'd make HTML content, and write to it. Want to update it? Clear the buffer and write to it again. As a user, if you ever want to read the buffer, you just browse it. Want to update it? Refresh the window. Or better yet, stream it over a websocket. Like Std Out on steroids. If you need to combine the output from a few libraries in a new window, you just write a bit more HTML in your code, and you're doin' it.

It's just another example, in my mind, of the power of libraries. We all get used to thinking of frameworks (IIS, Apache) as the only way to solve a problem, that we forget to even think about putting things together in new and unexpected ways. HTTP as a library - HELL YES.

Using HTML to debug programs, live, is highly under-utilized.
IT  TOP  Inspiration  fun_in_programming  Leverage  libraries_programmers_tools  http-Server 
may 2015 by snearch
Mechanical Elephant
But! You can use Debug.Trace as a Python style print function without having to bother with Haskell’s IO type. This can be very useful to get started. Though, once you get moving in Haskell, you probably won’t use it as much as you think you would.


The Best Monad Tutorial

was a Parsec tutorial.

Mostly when you hear about someone becoming productive in Haskell, it involves a description of how they finally understood Monads. Well, damn, here it goes.

I needed to write a parser. I had something in Python, but due to my inexperience in writing parsers, the growing complexity of my code was slowing me down considerably.

So, I had some extra time, I thought maybe I should give it a go in Haskell.

I found the Youtube video, Parsing Stuff in Haskell, which explains how to create a JSON parser in Haskell using the Parsec library.


Haskell infrastructure is improving all the time. Last year, GHC (which is the Haskell compiler) 7.8 came out which doubled the performance of Warp, one of the prominent web servers that was already pretty fast.
Haskell  Tipps_und_Tricks  Parsing  tutorial  libraries_programmers_tools  Parsec  Warp  framework  Webserver  http-Server  Monad 
april 2015 by snearch
StageXL for Dart
StageXL is a package for the Dart programming language. It offers an easy to use and complete API for impressive 2D content like games and other rich applications. The library started as an easy migration path for Adobe Flash developers to HTML5. Therefore the StageXL API is for the most part identical to the Flash API. Today many developers who have no prior experience with Flash are using StageXL for their applications.
Flash  alternative  StageXL  Dart  libraries_programmers_tools 
march 2015 by snearch
We Don't Need No Stinkin' Frameworks: Writing Web Apps with Bacon.js and virtual-dom
I should mention React and Flux, the current darlings of web developers everywhere. Of all of these options, only the React/Flux combo struck me as truly practical for real-world web development.
While stream-based programming with Bacon.js is not a silver bullet, it does offer more manageable code and, most importantly, a mental shift from the idea of program state.
Javascript  Bacon.js  libraries_programmers_tools  stream_based  programming  reactive  flux  React.js 
march 2015 by snearch
Writing Multithreaded Applications in C++ (the right way) : programming
[–]meetingcpp 2 points 11 hours ago

That's the problem with threading in C++11 (and it didn't got better in C++14):

a lot is missing. As std::thread is a pure library implementation, I'd favor the boost::thread library, as it already implements a lot of the coming features of std::thread and especially std::futures. wait_any and wait_all for example. Also boost::thread lets you interrupt a thread.
Multithreading  C++  C++11  C++14  Boost  libraries_programmers_tools 
february 2015 by snearch
Conrod – A 100% Rust GUI Library | Hacker News
zwegner 17 minutes ago | link

Pretty sweet looking. After seeing the Envelope A/B widgets, I thought "wonder if this was made for the purpose of a UI for a software synthesis library?" And sure enough, it was :) Is the synthesis package open source (or going to be)? EDIT: nvm, found it:

Glad to see Rust getting more traction. I'm not a huge fan of the syntax, and I'm personally putting my chips in the purely-functional space--but it's the most promising as far as a practical C++ replacement with much better semantics, which is sorely needed.

Rust  GUI  libraries_programmers_tools  Conrod  TOP  Inspiration  Profession  fun_in_programming 
august 2014 by snearch
Why Functional Programming Matters : programming
[–]Jurily 12 points 2 hours ago

No, amazing is when you prove that your proxy system is isomorphic to monad transformers and cut your API to 1/3rd.

give gold

[–]stillalone 22 points 2 hours ago

The majority of programmers out there don't have a clue wtf you just said.

give gold

[–]Tekmo 10 points 1 hour ago*

I'll translate. I wrote a Haskell library called pipes, which lets you extend any DSL with the ability to yield or await values in order to build streaming components. You can connect these components together in multiple ways, and these connection operations obey many neat mathematical properties that ensure they behave correctly (no bugs!).

For example, one thing that you can do is model generators using pipes, and one of the ways you can connect generators is using an operator called (~>):

(f ~> g) x = for (f x) g

I proved that this operator is associative:

(f ~> g) ~> h = f ~> (g ~> h)

... and that it's identity is yield:

yield ~> f = f

f ~> yield = f

In other words, (~>) and yield form a category and those equations are the corresponding category laws. When you translate those equations to use for instead of (~>), you get:

-- Looping over a single yield simplifies to function application
for (yield x) f = f x

-- Re-yielding every element of a stream returns the original stream
for s yield = s

-- Nested for loops can become a sequential for loops if the inner loop
-- body ignores the outer loop variable
for s (\a -> for (f a) g) = for (for s f) g = for s (f ~> g)

In other words, the category laws translate into "common sense" laws for generators that you would intuitively expect to hold for any generator implementation.

give gold

[–]Heuristics 1 point 10 minutes ago

You lost me at DSL (and i'm a professional programmer with a masters in comp.sci).

give gold

[–]bricoleur500 1 point 1 hour ago

I'm a math student. Categories show up in functional did you go about learning about categories?

give gold

[–]Tekmo 8 points 1 hour ago

Writing lots of Haskell code! :)
TOP  Inspiration  Haskell  Pipes  libraries_programmers_tools 
march 2014 by snearch
Npm's Self-Signed Certificate is No More | Hacker News
weixiyen 18 hours ago | link

Node.js is not ready.

The main problem with Node.js is that the libraries out there simply are not good, are broken / don't do what it says it does, or have critical issues outside of the most basic use cases. I'm talking about the popular libraries (like down to all the ones being contributed by the community. I've found flaws in every single library I've used so far, and they are flaws not present in their Python and Ruby counterparts.

Error handling in Node.js is one of the worst of any language.

NPM is now deploying breaking changes to production, without apology.

Javascript is also a terrible language for larger teams, unless everyone follows the same exact convention, as the language itself is extremely flexible, more so than any language I've seen.

I've spent 2 years in this ecosystem, and pretty much anything else feels liberating in comparison, be it Python, Ruby, Go, Erlang, etc etc.

The only thing Node.js has going for it is a community of front-end developers who want to dabble in backend architecture, but I just feel this whole entire ecosystem is too fragile for my tastes.

Like MongoDB, as people begin creating successful businesses out of it and reach a certain scale, similar articles bashing Node.js are all but inevitable.
SSL  certificate  Zertifikat  Node.js  Socket.IO  sockjs  libraries_programmers_tools 
march 2014 by snearch
The Performance of Open Source Software | From SocialCalc to EtherCalc
LiveScript, Redux

In contrast to the straightforward Perl syntax of Coro::AnyEvent, the callback-based API of Node.js necessitates deeply nested functions that are difficult to reuse.

After experimenting with various flow-control libraries, I finally solved this issue by settling on LiveScript, a new language that compiles to JavaScript, with syntax heavily inspired by Haskell and Perl.

In fact, EtherCalc was ported through a lineage of four languages: JavaScript, CoffeeScript, Coco and LiveScript. Each iteration brings more expressivity, while maintaining full back and forward compatibility, thanks to efforts such as js2coffee and js2ls.

Because LiveScript compiles to JavaScript rather than interpreting its own bytecode, it remains completely compatible with function-scoped profilers. Its generated code performs as good as hand-tuned JavaScript, taking full advantage of modern native runtimes.

On the syntactic side, LiveScript eliminated nested callbacks with novel constructs such as backcalls and cascades. It provides us with powerful syntactic tools for functional and object-oriented composition.

When I first encountered LiveScript, I remarked that it’s like “a smaller language within Perl 6, struggling to get out”–a goal made much easier by adopting the same semantics as JavaScript itself and focusing strictly on syntactical ergonomics.
auswerten  Tang_Audrey  Perl  Javascript  LiveScript  Coro::AnyEvent  libraries_programmers_tools  Haskell  functional  Programming_Language  Perl6  print!!! 
october 2013 by snearch
Go Concurrency Patterns ported to Clojure | Hacker News

_halgari 7 hours ago | link

Using Thread/sleep inside of a go block is questionable. Using >!! and <!! inside a go block is simply wrong. Please switch to <! and >! and if you aren't simulating actual work, remove Thread/sleep. Failing to do so can seriously mess with the core.async thread pool.

Doing blocking operations inside a go is a anti-pattern.



pron 4 hours ago | link

You could also use Pulsar ( It has the same API as core.async, but none of these limitations (only you would need to call Fiber/sleep or Strand/sleep instead of Thread/sleep). Other than that, !< and !!< etc. are interchangeable in Pulsar (and either could appear in a function called by the go block; they don't need to appear in the same expression). You could then also do IO in go blocks.

But actually, Pulsar's main advantage is that it's simply a Clojure API for Quasar (, which adds all of these capabilities to Java and any other JVM language by providing true lightweight threads. core.async's advantage is that it can also be used in ClojureScript, while Pulsar only works on the JVM.

Clojure  core.async  Pulsar  Quasar  libraries_programmers_tools 
september 2013 by snearch
LibPhenom, a high-performance C eventing framework from Facebook | Hacker News

astrodust 1 hour ago | link

Does anyone know how this compares to the standard libevent or the quirky allegedly faster libev (



wezfurlong 38 minutes ago | link

We're a bit faster than libevent in terms of dispatch throughput; some benchmarks in this commit message:

The `tests/bench/iopipes.t` "test" allows you to play with some concurrency parameters to try this for yourself on your hardware.

We haven't compared against libev.

We've added some more APIs (buffers and sockets) since those benchmarks were done and we don't have numbers to share around those yet.

One key difference between libevent, libev and libuv is that libphenom is inherently multithreaded in its IO dispatcher and timeout implementation.

If you're dispatching purely CPU bound jobs, we get very close to linear scaling with the number of cores:



kev009 48 minutes ago | link

There's a lot more framework in place for building an application here... hash tables, configuration files, JSON, performance counters.

libevent/libev are easier to retrofit into existing applications. This looks like something you'd start a new application with. libuv is somewhere in the middle.

libraries_programmers_tools  libPhenom  libevent  libev  libuv  Facebook  eventing_framework 
september 2013 by snearch
Things I Wish I Were Told About Angular.js | Hacker News
tfn 85 days ago | link

I wish I had known about ui-router before I wasted days trying to hack together nested views /w deep urls:
Webdevelopment  Angular.js  Angular-UI-Router  libraries_programmers_tools 
august 2013 by snearch
« earlier      
per page:    204080120160

related tags

address_validation  AI  Akka  Alexandrescu_Andrei  algorithm  alternative  Ammonite  AMQP  Analemma  Angular-UI-Router  Angular.js  Anypixel.js  Apache  API  AppEngine  AqBanking  AqHBCI  architecture_software  Arduino  Async++  async.todos  asynchronous_event_processing  Asyncpools  Aura  auswerten  Authentication  Authorization  autocompleter  autocomplete_library  Awe6  AwesomeChartJS  backend  Bacon.js  Banana  Banking  Barcode  Belege  Belege_scannen  Biicode  binary  binding  bless  blocks  BNF  book_recommendation  Boost  Boost.Spirit  boxcars  Bratko  Browsers  Business  C  C#  c++  C++11  C++14  Cabal  Calendar  Canvas  case_classes  Cassava  Catch  Cello  cereal  cerealed  certificate  Charts  cheerio  Chicken_Scheme  Chrome  Cinder  clang  client  client_side  CLion  clojure  ClojureScript  Closure  clreflect  clutter  CMake  COMMON_LISP  compiler  component_sw  Config::JSON  configuration_library  connect-auth  Conrod  core.async  core.logic  Coro::AnyEvent  Coroutines  cps_continuation_passing_style  cro  CRUD  Cryptograhie  CSP  CSV  D3  D3.js  d21  Dart  Data::Structure::Util  DataTables  DateTime  DBI  DBIC  DBIx::Class  dependency_injection  Developers_Toolbox  Development  digitalisieren  Dlang  documents  DOM  dommy  dynamic_updating  Ecto  Ed.  Elixir  email  Embedded_Systems  Encryption  Entrepreneurship  Erlang  eventing_framework  event_loop  Event_Notification  F#  Facebook  fast  fastcgi  Finagle  Firebase  Firefox  Firefox-Lesezeichen  Flash  Flatbuffers  flexigrid  Flotr2.js  FLTK  FLTKHS  flux  Forms_and_Form_Validation  Fr  framework  FreeBSD  frp  FullCalendar  functional  fun_in_programming  Fxpay  games  game_engine  get  gif  gif.js  gifsockets  Gio  GMail  Golang  Google  goprotobuf  Gorilla  grammar  Graphics  grid_components  GUI  Handel  hardware_accelleration  Hardware_Basteleien  Hashing  Haskell  Haxe  Haxl  HBCI  Highcharts.js  higher_quality  html  html5  html5media.js  http  HTTP-API  http-client  http-server  HTTP::Tiny  Hypothesis  IBM  in-app  Informatik  Ingrid  Innovation  Insp.  inspiration  Internet  iOS  iPhone  IT  Jansson  Java  javascript  JetBrains  JPEG  jpgcrush  jqGrid  jQuery  jQuery.sheet  jQuery_UI  JSON  JSON::RPC::Dispatcher  Kitsune  Kmett_Edward  knox  Lens  lenses  Lesezeichen-Symbolleiste  Leverage  libdispatch  libev  libevent  libmicrohttpd  libPhenom  libraries_programmers_tools  libuv  like_minded_people  Linux  LISP  literate_programming  LiveScript  load_balancing  logic_programming  login  Lthread  Lua  LWJGL_Lightweight_Java_Game_library  m02  machine_learning  Macros  Mailgun  Maps  Metaprogramming  Minecraft  MIO  ML  Moblin  modern  Monad  mongoose  Moose  moost  mori  Mozart/Oz  Mozilla  mozjpeg  mp4  MS-Office  Multimedia  Multithreading  Musik_machen  NaCl  native  Naur_Elias  nbtk  Netwire  networking_hardware  networking_people  nginx  NLP  Node.js  Nolan_David  NVD3.js  OCaml  OCR  OOP  OpenFL  OpenGL  OpenSolaris  Open_Source  ORM  OS_X  Overtone  Parsec  parsing  payment  pdf  Perl  Perl6  Phoenix  Php  php5  Pipe  Pipes  Plack  Plugin  POCO  Poco  Pod::Simple::HTML  Polymer.js  Ponyo.Net.Http  print  print!!  print!!!  Profession  professional_software_development  programming  Programming_Language  Projekt  Prolog  property_based_testing  PROs  Protocol_Buffers  Protothreads  Pulsar  Python  PyTorch  Quasar  Quickcheck  QuickCheck  Quickcheck-Clones  react  React.js  reactive  Real_World_Haskell  recognition  replaxement  request  resource_pooling_tool  REST  Restlet  reverse_proxy  RPC  Ruby  Russland  Rust  RxSwift  R_Programming_Language  S3  sandbar  Scala  Scala.Rx  ScalaCheck  Scheme  screen_scraping  scripting  SDL  Security  seesaw  serialization  Servant  server_side  Session_handling  SFML  SFML_Simple_Fast_Multimedia_Library  Shell  Shelly  Siram_Aditya  SlickGrid  Snap  SOAP  SOAP::Lite  Socket.IO  Sockets  sockjs  spidey  SQL  SQLite  SSL  Stack  StageXL  Starman  startup  static_if  StatsD  stream_based  Stroustrup_Bjarne  SVG  SVG.js  swannodette  Swift  Swifton  Swing  System_Programming  TameJS  Tangle.js  Tang_Audrey  template_system  Test::Most  Testing  teuer_bezahlt  tgrid  Thrift  Timesheet.js  Tipps_und_Tricks  TLS  Tools_Software  TOP  tutorial  typeahead.js  unbless  Underscore.js  Upton  UrlDisp  USB  Victor_Brett  Video  Video_Tag  virtual_DOM  vs.  Wangle  Warp  webdevelopment  Webdevelopment::Tools  WebM  Webserver  Webservice  Webservices  website  Web_Components  web_worker  week  What_it’s_like_building_a_real_website_in_Node.js  Windows  worker_pool  Worthington_Jonathan  writer  xml  y2012  Yesod  ZeroMQ  Zertifikat  _Ivan_-_Prolog_Programming_for_Artificial_Intelligence_4th 

Copy this bookmark: