Skip to content

Instantly share code, notes, and snippets.

Esteban A. Maringolo eMaringolo

Block or report user

Report or block eMaringolo

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View gist:bed9974d70c9ab8c6398149716e22b08
ZnClient subclass: #ZnCachingClient
instanceVariableNames: ''
classVariableNames: ''
package: 'Zinc-HTTP-CachingClient'
execute
"Execute the currently set up request to generate a response.
If the request was performed before, retrieve the cached version.
Return the #contents of the response, if any."
@eMaringolo
eMaringolo / keybase.md
Last active Sep 11, 2019
Keybase Identity Proof
View keybase.md

Keybase proof

I hereby claim:

  • I am emaringolo on github.
  • I am emaringolo (https://keybase.io/emaringolo) on keybase.
  • I have a public key whose fingerprint is A693 D5C7 226E 1254 9132 45E6 AE8F 6B83 81F5 D5AD

To claim this, I am signing this object:

@eMaringolo
eMaringolo / bitcoin
Created Aug 2, 2017
Ubuntu's /etc/init.d/bitcoin script to run a bitcoin node as daemon/service
View bitcoin
#!/bin/sh
### BEGIN INIT INFO
# Provides: bitcoin
# Required-Start: $local_fs $network $named $time $syslog
# Required-Stop: $local_fs $network $named $time $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Bitcoin Fullnode
### END INIT INFO
View gist:3228968
[ :s | Transcript show: s; show: s printString ] value: '[ :s | Transcript show: s; show: s printString ] value: '
@eMaringolo
eMaringolo / ZnSimpleWebServer.st
Created May 28, 2012
The simplest hello world server using Zinc HTTP Components <http://zn.stfx.eu/zn/index.html>
View ZnSimpleWebServer.st
(ZnServer startDefaultOn: 1701)
onRequestRespond: [ :request |
ZnResponse ok: (ZnEntity text: 'Hello World!') ]
@eMaringolo
eMaringolo / load-script
Created Apr 28, 2015
IntelliJ icons in Pharo
View load-script
Gofer it
smalltalkhubUser: 'estebanlm' project: 'IconsForPharo';
package: 'Polymorph-Icons-Idea';
load.
ThemeIcons current: IdeaUIThemeIcons new.
AbstractNautilusUI resetIconCaches.
"(you will need to reopen all your windows)"
"The coolness of this icons set is that they work very fine with Dark Theme too :)"
View JSON Bench
"Compares the parse speed of three different JSON parsers."
{'file1.json'. 'file2.json'. 'file3.json' } do: [ :filename |
jsonString := fileName asFileReference contents.
Transcript cr; show: jsonString size printString, 'bytes JSON:'; cr.
Transcript show: 'NeoJSON: '; show: [ NeoJSONReader fromString: jsonString] bench; cr.
Transcript show: 'JSON: '; show: [Json readFrom: jsonString readStream ] bench; cr.
Transcript show: 'WAJsonParser: '; show: [WAJsonParser parse: jsonString] bench; cr.
]
@eMaringolo
eMaringolo / MandrillClient.st
Created May 30, 2014
Simple example on how to send emails from Pharo using MandrillApp client
View MandrillClient.st
"Get client at http://smalltalkhub.com/#!/~NorbertHartl/Mandrill"
"Set the api key only once."
MandrillClient apiKey: 'yourApiKeyGoesHere'.
(MandrillMessage new
addRecipient: (MandrillRecipient new email: 'alice@there.com');
fromName: 'Bob';
fromEmail: 'bob@yourdomain.com';
subject: 'Sending mails from Pharo';
@eMaringolo
eMaringolo / generator.st
Created May 24, 2014
8 byte pretty much unique ID generator
View generator.st
"http://instagram-engineering.tumblr.com/post/10853187575/sharding-ids-at-instagram"
| epoch generator ids runLength shardId seqId|
epoch := '01-01-2014' asDateAndTime asUnixTime. "1388545200"
generator := [:seed1 :seed2 |
| id |
id := (DateAndTime now asUnixTime - epoch) bitShift: 64-41.
id := id bitOr: (seed1 bitShift: (64-41-13)).
id := id bitOr: seed2 ].
@eMaringolo
eMaringolo / wrongSlotScope.st
Created Apr 27, 2014
All the layout of some classes is wrong, due to some ancient bug. The bug fix has been integrated but all the classes that have been modified in-between may have this problem. To fix that you have to force the rebuild of these classes (by adding then removing a dummy inst var for ex).
View wrongSlotScope.st
ivName := 'anIVNameImPrettySureNobodyUses'.
all := Smalltalk allClasses flatCollect: [ :e | { e . e class } ].
candidates := all reject: [ :e | e superclass isNil or: [e layout slotScope isKindOf: LayoutEmptyScope ] ].
toRebuild := candidates reject: [ :e | e superclass layout slotScope == e layout slotScope parentScope ].
toRebuild do: [ :e | e addInstVarNamed: ivName ].
toRebuild do: [ :e |
(e isClassSide
You can’t perform that action at this time.