win

Van Jones Thinks Bernie Sanders is Going to Win Iowa

JONES: You talked about the person we always talk about, Donald Trump. Let's talk about the person we never talk about, we just heard from. Bernie Sanders has incredible momentum. He's had almost a media blackout. We -- I mean, he's almost never the subject of the main conversation. But out in the country, you see a lot of Bernie Sanders support. He got more contributions, individual donors, than anybody in American history. That by itself lets you know something's going on. I think he's going to win Iowa. He may win New Hampshire. Continue reading



  • Accountants CPA Hartford
  • Articles
  • ABC News
  • Crosstalk
  • January 3 2016
  • Martha Raddatz
  • Race to the White House
  • THIS WEEK WITH GEORGE STEPHANOPOULOS
  • Transcript for Van Jones Thinks Bernie Sanders is 'Going to Win Iowa'
  • Van Jones
  • Van Jones Thinks Bernie Sanders is Going to Win Iowa

win

У WINGER есть новые песни

Вокалист WINGER Kip Winger в недавней беседе с "Trunk Nation" подтвердил, что группа работает над новым материалом:

«Мы с Reb'ом вдвоём начали работу несколько месяцев назад, и у нас уже есть четыре или пять песен — три или четыре из них практически закончены. Так что мы сейчас думаем, как и что делать дальше».

По словам Kip'a, Reb использует время на карантине для работы над новой музыкой:

«Мне очень нравится быть в одном помещении с Reb'ом — я не особый любитель всех этих "пластинок-по-почте", ну серьёзно — делать альбом по электронной почте — это не моё. Но Reb уверен, что скоро сможет приехать, чтобы продолжать. И мне нужно использовать время по максимуму. У меня есть пять песен для моего сольного альбома, которые родились естественным образом, и у меня еще есть обязательства перед Nashville Symphony. Я закончил для них первую симфонию и начал писать партии для скрипичного концерта. Так что я невероятно занят, однако фокус на новом альбоме WINGER возникнет раньше или позже, так что как мы покончим с этим всем, будет и новая пластинка группы». #Winger #HardRock #Hard_Rock #HeavyMetal #Heavy_Metal




win

Windell and Lenore on the Embedded.fm podcast

Elecia and Chris of Embedded.fm invited us to come back on the show for episode 317: WHAT DO YOU MEAN BY DISINTEGRATED?. We also had the added enticement of a low tide adventure after recording. Lenore had been on the show back in 2014 for episode 40: MWAHAHA SESSION, and Windell was on the following … Continue reading Windell and Lenore on the Embedded.fm podcast




win

IBM Wins Prestigious Climate Leadership Award

IBM has been awarded a 2017 Climate Leadership Award by the U.S. Environmental Protection Agency, the Center for Climate and Energy Solutions and The Climate Registry.




win

IBM Names 16 Municipalities as IBM Smarter Cities Challenge Grant Winners

IBM's Smarter Cities Challenge program (@CitiesChallenge) will be sending teams of company experts to 16 municipalities around the world through 2016 to help cities with critical issues ranging from jobs creation, transportation, and public safety, to healthcare, revenue, social services, and public works.




win

Ep 10 - Sports & entertainment rewind

Sport and entertainment reporters mine the archives to fill the void.




win

IBM Builds On Growing Social Business Momentum with New Clients and Services

IBM today announced continuing momentum for its social business offerings with clients around the world ushering in the next era of collaboration with IBM Verse and Connections. IBM also announced expanded capabilities in its collaboration portfolio with new innovations that make it easier for clients to gain and share business insights across teams.



  • IBM Social Business

win

How Much is Inside A Box of Wine?

Tired of dragging armfuls of wine to a party? Why not try buying wine in a box?




win

Making a Periscope for a Bedroom Window

What if you mount a mirror at a 45 degree angle just outside your bedroom window?




win

Sewing Cushions for Bus Stop Benches

What if you made it more comfortable to sleep at a bus stop?




win

IBM and IBC Report: Increased Viewing of Mobile Video Content is Driving Consumer Demand for Better Content Experiences

Digital video consumption is viral and, according to a new study released today by IBM and International Broadcasting Convention (IBC), more than half of the 21,000 consumers surveyed are using mobiles every day to watch streaming videos, and that number is expected to grow 45 percent in the next three years.



  • Services and solutions

win

IBM Achieves Record 10th Straight Number One Showing on TOP500 Supercomputer List

Declares Intent to Break the Exaflop Barrier; Develops Exascale Research Collaboratory in Dublin



  • Linux and Open Source

win

Eight Wire wins IBM SmartCamp Auckland 2015

IBM today announced New Zealand startup Eight Wire as the 2015 winner of IBM SmartCamp Auckland. The data integration specialist was one of five IT startups from around New Zealand invited by IBM to participate in the competition.




win

IBM Poland and WINUEL Develop the First Polish Smart Metering Software Package

IBM Poland and WINUEL SA (subsidiary of Sygnity Group), today announced the first Polish Smart Metering software package to enable intelligent electricity use in more than 15 million households in Poland. The solution was developed jointly with the IBM Software Laboratory in Krakow.



  • Energy & Utilities

win

IBM Aims to Help Alleviate Water Shortages in Northern California’s Wine Country



  • Energy & Utilities

win

IBM Collaborates on New Wind Energy Technologies

IBM today announced that energy system supplier Alstom, and Ikerlan-IK4, an energy technology research and development organization, are using IBM software to develop wind turbine control systems that significantly improve the performance of sustainable power systems based on wind-generated energy.



  • Energy & Utilities

win

HOLCIM accélère la migration de ses postes de travail vers Windows 7 avec IBM

IBM et Holcim France Benelux annoncent la migration vers Windows 7 des postes de travail de 2500 utilisateurs sur 286 sites en seulement trois mois grâce au savoir-faire d’IBM Global Technology Services.



  • Global Business Solutions

win

Tabcorp bets on IBM for shared services winner

Australia's best known diversified entertainment group, Tabcorp, has successfully completed its move to a shared services model for finance, human resources and procurement with the assistance of IBM Global Business Services.



  • Media & Entertainment

win

Telstra wins Best Practice Excellence Award

Telstra Corporation Limited (Telstra) was awarded the 2008 Excellence Award in the ‘Best Practices - Service Provider’ category by the TeleManagement Forum (TM Forum).




win

Synergy Plus Wins IBM Beacon Award for Leadership in Optimizing IT Infrastructure

Hyro Limited group company, Synergy Plus Pty Ltd (“Synergy”) has been named winner of the award for “Leadership in Optimizing IT Infrastructure” in the annual IBM Beacon Awards competition, honoring IBM Business Partners for their ingenuity, innovation, customer satisfaction and outstanding achievements in providing business solutions.




win

Southern Cross Computer Systems Wins IBM Beacon Award for Innovation in Green IT Data Center Solution

Southern Cross Computer Systems Pty Ltd has been named winner of the award for “Innovation in Green IT Data Center Solution” in the annual IBM Beacon Awards competition, honoring IBM Business Partners for their ingenuity, innovation, customer satisfaction and outstanding achievements in providing business solutions.




win

Localz wins IBM SmartCamp Australia 2015 with innovative micro-location technology

IBM (NYSE: IBM) today announced Melbourne start-up Localz as the winner of IBM SmartCamp Australia 2015, a global competition that brings together entrepreneurs, investors and experienced mentors. Localz provides software that connects the digital and physical worlds for enterprise, using the latest micro-location technology to enhance customer’s in-store experience, improve asset and inventory tracking and provide frictionless mobile payments, at scale. One of the key differentiators of the solution is that it works across different technologies (iBeacons, Bluetoth Low Energy, GPS or even QR Codes).




win

Double Aurora Award win!

Woohoo! First, I’m thrilled that my Quantum Night just won the Canadian Science Fiction and Fantasy Award (“the Aurora“) for Best Novel of the Year this evening; the award (pictured above) was presented at Hal-Con in Halifax. The nominees were: Children of Earth and Sky by Guy Gavriel Kay, Viking Canada Company Town by Madeline […]




win

Academy Award Winner Taika Waititi to Direct and Co-Write new Star Wars Feature Film for Theatrical Release; Oscar Nominee Krysty Wilson-Cairns to Co-Write Screenplay with Waititi 

Emmy Nominee Leslye Headland to write, produce, and serve as showrunner for new untitled Star Wars series for Disney+.




win

2013 Travel Lookback: Winter Escape to Hawaii

Continuing my project to journal all of my travel adventures, we come to an entertaining entry: The Big Island of Hawaii and the Great Luggage Chase of 2013.

The trip was well planned but poorly executed due to weather mishaps. I was supposed to fly DCA-JFK-LAX-KOA but snow dropped visibility to near zero at JFK so my plane was rerouted to Providence, RI after we took off from DCA. After several hours Delta put everyone back on a plane to JFK and rescheduled the connecting flights outbound from there. There was no way I was going to make it out to LAX in time to catch the Delta flight to Hawaii,  but as I was still a shiny Diamond Medallion back then and mattered to the airline, Delta put me on an AA flights to ensure I would get to Hawaii one way or another. The AA flight routed through PDX (Portland) and because of more weather problems our flight into Portland was delayed and I missed my Hawaii flight after all. Now I was stranded in Portland overnight, while my luggage (including my coat) was in LAX (it had remained on my original itinerary). 44 degrees Fahrenheit and I was dressed in anticipation of Hawaii with my sleeveless summer dress and flip-flops. Gah! Are you laughing yet? 

Delta put me up in a hotel for the evening and in the next morning I was back at the airport in my dirty clothes, tired, cranky, and eager to get to Hawaii. Let this vacation start already! I landed on Kona Island (also called Hawaii Island or the Big Island) and was immediately dismayed to find my luggage wasn’t due to arrive until that evening (having missed the evening flight the night before, they put it on the next evening flight available 24 hours later). This was a problem as I was going to be on the road for most of the trip, exploring. I left information with Delta on my whereabouts for that evening and hoped for the best. I hopped into my rental car and headed for Volcano National Park. Along the way, the scenery was gorgeous and for a good portion of the trip my car was the only one on the highways I traveled.

I journeyed to the end of the Chain of Craters Road, which follows along the ocean and dead ends at a lava flow that closed the road beyond.

As I approached Volcano National Park, the sun began to set.

There was a beautiful lava lake in the Halema’uma’u crater (the 2019 eruption of Mt. Kilauea drained it) and I was lucky enough to stand before it that evening and enjoy its stunning ebb and flow. My poor quality cell phone picture cannot capture its essence.

I had an intense dinner at Thai Thai in Volcano. It was the hottest Thai food I have ever had outside of Bankok and it brought on an instant headache and the feeling that my lips were on fire. I recommend the place only if you can stand the heat.

The next morning I was up at 4am with plans to visit the highest point on the island and the summit of the tallest mountain in the world – Mauna Kea. From its base, Mauna Kea is over 10,000 meters tall (Mt. Everest is just 8,850 for comparison). It was a cold journey as my luggage still had not arrived into Hawaii (Delta was frantically searching for my bags and could not locate them in the system at all) and so I had only my summer dress I wore on the flight to Hawaii and the t-shirt/shorts combo I purchased the day before. The view from the top proved more than worth the discomfort of the cold.

As I was descending from the summit, Delta called with some good news. They found my bags at KOA. They said they would hold them for me till later that evening when I arrived for my flight to HNL. And they gave me a $200 delta voucher for my trouble. That made me feel a little bit better, but it reinforced the universal travel truth: checking luggage for a weekend trip is almost always a bad idea.

It was a leisurely drive back to KOA, with more scenic shots along the way.

When I got to KOA airport, Delta had some fun news for me. My bags weren’t at the airport anymore where they were supposed to be. As a “courtesy”, Alaska had picked them up from Delta baggage and sent a courier across the island to the hotel I stayed at the night before (2.5 hours away) to hand deliver them to me. With just a few hours before my departing flight for HNL, I told Delta they needed to get ahold of the driver and advise him to race his ass back to this side of the island to the airport. I was doubtful I would ever see my luggage again, but thirty minutes before takeoff, a very tired and sweaty courier waved at me and handed me my bags. As soon as I got to Waikiki and checked into my hotel, I took a long shower and enjoyed the luxury of putting on clean clothes- a ritual I usually take for granted.

I enjoyed a couple of relaxing days taking in the sun and fruity cocktail drinks on the beaches of Waikiki before heading home to Virginia.  That trip was delayed too, because of storms in Virginia, and I ended up spending the night near LAX and coming home a day later. All in all a good trip, excluding the weather and luggage fiascos. I have since been back to the Hawaiian Islands two or three times (to Oahu and Maui) but the Big Island is definitely the most spectacular of them all.  Go to Oahu for the history and shopping, go to Maui for the food, but go to the Big Island for the rugged scenery that will take your breath away.




win

Board Game Review: Wingspan

It might be mildly offensive to the scores of board game designers out there, but until just recently, I’ve never played a board game that was so unique it made me want to learn more about the designer and why they designed the game. A lot of games are exceedingly wonderful, and they push me to stay tuned for what the designer might release next, but that's altogether different from wanting to understand what motivates the designer and makes them tick.

And then along came Wingspan, designed by Elizabeth Hargrave, and released by Stonemaier Games. We have close to a thousand in our collection, and I’ve never seen anything like Wingspan before. It’s a game centered on birds. Beautiful, fascinating birds of all sizes, habitats, colors, and species. One hundred and seventy birds to be exact, in this first release of the the base game. It’s so richly and specifically themed; even with Jamey Stegmaier’s signature stamp of influence (goal oriented worker-placement game with win-win actions and well implemented solo mode), the designer’s innovative, well researched, and creative output takes center stage. I wanted to know more about her.  It took me just a few minutes online to find this interview of Ms. Hargrave that Punchboard Media released earlier this year and when I read it I was astonished to discover that she is not, in fact, an ornithologist who had that one great idea, but a board game designer by trade who takes inspiration from across her many interests. Her idea for Wingspan grew out of the charts she created to track birds she’s spotted in nature.

In Wingspan, players compete with one another (or against the automa during solo play) to build the most attractive aviary. The winning aviary will prove itself in victory points from the birds it hosts (birds are worth varying amounts of victory points as printed on their cards and birds tucked under other birds are worth 1 point each), their eggs and cached food (1 point each), and the goals met (detailed on bonus cards and round tracker; goals are usually oriented toward collecting birds with a certain quality [such as name includes a color or having a certain type of nest], toward numbers of birds in certain habitats, or toward having eggs in certain habitats or nests).

Components include plastic coated cards; cardboard player aviary mats, food tokens, goal tiles, first player token, and goal board; custom wooden dice, action cubes, and eggs; a scorepad; a bird tray to hold bird cards during the active game; a custom dice tower; and all components needed for playing against the automa in solo mode. All of these components are well made and the eggs are some of the cutest things I’ve ever seen. Likewise, the artwork is phenomenal, with illustrations by Ana Maria Martinez Jaramillo, Natalia Rojas, and Beth Sobel.

My review copy of Wingspan arrived at my door back in late July, when I was still on vacation in Europe. As soon as we got home, I tore into it, excited to see what all the buzz was about (the game has been on the lips of every board game enthusiast for months; I first spotted a copy back in December when it was still under hush hush review copy only distribution in the hands of a fellow reviewer). We invited our friend David over to play our first game and he fell for these birds so hard that he ordered his own copy the very next day from Stonemaier’s website.  My husband and I were hooked after just one game as well and we’ve gone on to play several games since then, across all player counts, including solo against the automa.

As I mentioned above, Wingspan is a worker placement game, where you use wooden action cubes to execute one of the four basic actions each turn:

  • Play a bird to your aviary
  • Gain food used to attract new birds
  • Have your birds lay eggs
  • Draw new birds

Each action, save for playing a bird, is tied to a specific row (i.e. habitat) on a player’s aviary card. Gain food is associated to the forest habitat, lay eggs is tied to the grassland habitat, and draw cards is paired with the wetland habitat. To complete the action, a player references the first empty space (reading from left to right) in the action’s habitat, and follows the visual instructions. In the picture below, I’ve circled in red the 4 action types on the player board. The habitat type for each action is indicated by the icon to the left of the action.

One of the genius mechanisms deployed in Wingspan is the reduction of actions available over each successive round. When the game begins, everyone has eight wooden action cubes they may exhaust to complete eight different actions. At the end of the first round, players give up one of their cubes to mark their first round results on the goal board. Each follow on round sees players doing the same thing, so that by the time the last round rolls in, there are only five actions available for a player to execute. Brilliant! Luckily, Wingspan provides plenty of opportunity to build a strong engine and so the pain of only having a handful of actions during the final round isn’t too severe. It does so by assigning powers to bird cards (these powers often include the ability to take one of the four actions in a specific limited way such as “gain a cherry”; such action powers are color coded brown) and having players re-execute the brown powers of all the birds in a given habitat, from right to left, anytime a player chooses to use that habitat action during a turn.

Wingspan is not subject to much analysis paralysis. There’s usually a bit of hesitation when deciding which bonus and bird cards to select during the game setup as well as when drawing or playing bird cards during the game but it was rare that I ever sat waiting for someone to decide which action to take overall.

Both the competitive and solo modes of Wingspan are challenging and engaging. I’ve averaged 80 points across my competitive games and my solo games have seen me come in just slightly higher at about 85 points a game. I found the solo mode to be very relaxing.

Lessons learned:

  • First and foremost, prioritize adding birds to your aviary with star type nests. These are wildcard nests, which will count for every type of nests with regard to achieving goals. Every winner I’ve witnessed included an assortment of wildcard nest bird cards in their aviary.
  • Follow the advice printed in the rule book; in the beginning of the game focus on adding birds to your aviary that give resources when activated (in my first few games I focused more on high point birds instead and lost).
  • Work hard to win end round bonuses – their point differentials can swing the game in your favor.
  • Build a better engine over focusing on bonus completion if you have to choose between birds that will do one or the other.

I love that every game of Wingspan comes with a free biology lesson on birds. This bird lives in this habitat and that  bird eats that prey and that other bird has a wingspan of x number of meters. Fascinating, and it makes the game great to play with kids as a learning experience. My favorite type of bird encountered in the game so far is the Yellow Breasted Chat. It’s power allows it to move around from habitat to habitat, allowing you to use its characteristics to meet goals across any habitat from round to round.

I can only offer one complaint against Wingspan and it’s quite minor – the round goals are two sided tokens but their shape indicates a front versus a back side; they should be perfectly flat if no side is to take precedence.

Stop what you’re doing right now and make and take a step toward building your love for Wingspan. If you don’t own it yet, drop by your local game store to pick up a copy or check availability on Stonemaier’s website. Seriously, like right now. If you do own it and you haven’t gotten to the table yet or in awhile, commit to playing it at least once this week. Text your friends (up to 4 others) to come play with you, or set it up for solo mode. The important thing is to get it on the table, because as soon as you do you are going fall a little more in love with it.

“Whoever you are, no matter how lonely,
the world offers itself to your imagination,
calls to you like the wild geese, harsh and exciting –
over and over announcing your place
in the family of things.”

~Mary Oliver

-------------------------------------------------

Publisher: Stonemaier Games
Players: 1-5
Actual Playing Time (vs the guideline on the box): About 90 minutes per game
Game type: worker placement

Rating:

Jenni’s rating scale:
OUI: I would play this game again; this game is ok. I probably would not buy this game myself but I would play it with those who own it and if someone gave it to me I would keep it.
OUI OUI: I would play this game again; this game is good. I would buy this game.
OUI OUI OUI: I LOVE THIS GAME. I MUST HAVE THIS GAME.
NON: I would not play this game again. I would return this game or give it away if it was given to me.




win

Ken and Robin Talk About Stuff: He Said, Foreshadowingly

In the latest episode of their always activated podcast, Ken and Robin talk sandbox encounters, our top 2019 movies, and the tomb of Christian Rosenkreutz.



  • Ken and Robin Talk About Stuff

win

Ewing says his gold medals, NCAA ring stolen

Hall of Famer Patrick Ewing says his two Olympic gold medals along with his 1984 NCAA championship ring were stolen.




win

Wind of change

Возникший месяц назад образ - лиф с открытыми плечами из чёрного стрейч-бархата и чёрной тюлевой юбки, надетой поверх длинной белой шопенки (вдохновлённый, прямо скажем, нарядом Грейс Келли в "Окне во двор"), внезапно послужил толчком, и всё покатилось, как с горы.

Вечером 4 ноября, одновременно уставшая и полная сил, я, перед конкурсом костюмов, который должен был состояться назавтра, прямо, как была, в коротком платье-тельняшке, моём талисмане, в котором сплю в поездах, использую в качестве домашней одежды на конвентах, надела прозрачную юбку. Просто, чтобы показать коллегам, какая она красивая. Ну и корону заодно, по той же причине. Подруга Г. посмотрела... и сказала: "Всё, так и ходи. И выйди на закрытии на сцену".

В домашнем мини-платье до середины бедра?! В прозрачной юбке? И к этому корона набекрень?! Но... но... Нет! Нет-нет. Нет...

ДА. И тёмно-красная помада. И нет, в тапочках я не пойду, не уговаривай. пойду босиком. Балетные ступни с тёмно-красным лаком - тоже аксессуар. Зеркало! Чорт, хорошо-то как...

А когда 6 ноября мне предложили топор, я снова сказала "да". И Фея-с-Похмелья превратилась в Добрую-Фею-с-Топором. Почему с топором? Ну... Какой конвент, такие и феи.

А вчера, после семнадцатичасовой поездки в машине и возвращения домой, ещё хватило сил разобрать гардероб. Лакированные сапоги со шнуровкой, чёрные леггинсы и прозрачная чёрная юбка с бархатным поясом превратили предстоящую скуку в радостное предвкушение. Новую жизнь обрели любимые полосатый свитер, тельняшка-от-Хелависы с воротником-хомутом, кардиган в полоску, золотистая рубашка, рубашка-с-буквами, и, и...

The wind of change
Blows straight into the face of time!

Жемчуга подождут.





win

Swinging into the final third

I went to the cardiologist the other day, and my numbers all look good. LDL cholesterol is still a wee bit high, but trending in the right direction. I’m exercising, eating right, doing all the things I’m supposed to be doing. But I had an odd thought. I turn 60 this spring. Ferrett and I […]



  • Health and fitness
  • Life and relationships
  • Philosophy

win

Timofei Shatrov: Previewing images in and out of SLIME REPL

As any Common Lisp coder knows, a REPL is an incredibly useful tool. It can be used not just for development, but for running all sorts of tasks. Personally, I don't bother making my Lisp tools into executable scripts and just run them directly from SLIME. As such, any operation that requires leaving the REPL is quite inconvenient. For me, one such operation was viewing image files, for example in conjunction with my match-client:match tool. So lately I've been researching various methods to incorporate this functionality into the normal REPL workflow. Below, I present 3 methods that can be used to achieve this.

Open in external program

This one's easy. When you want to view a file, launch an external process with your favorite image viewer. On Windows a shell command consisting of the image filename would launch the associated application, on Linux it's necessary to provide the name of the image viewer.

(defvar *image-app* nil) ;; set it to '("eog") or something

(defun view-file-native (file)
  (let ((ns (uiop:native-namestring file)))
    (uiop:launch-program (if *image-app*
                             (append *image-app* (list ns))
                             (uiop:escape-shell-token ns)))))

Note that uiop:launch-program is used instead of uiop:run-program. The difference is that launch- is non-blocking - you can continue to work in your REPL while the image is displayed, whereas run- will not return until you close the image viewer.

Also note that when the first argument to run/launch-program is a string, it is not escaped, so I have to do it manually. And if the first argument is a list, it must be a program and a list of its arguments, so merely using (list ns) wouldn’t work on Windows.

Inline image in REPL

The disadvantage of the previous method is that the external program might steal focus, appear on top of your REPL and disrupt your workflow. And it's well known that Emacs can do everything, including viewing images, so why not use that?

In fact, SLIME has a plugin specifically for displaying images in REPL, slime-media. However it’s difficult to find any information on how to use it. Eventually I figured out that SWANK (SLIME’s CL backend) needs to send an event :write-image with appropriate arguments and slime-media's handler will display it right in the REPL. The easiest way is to just send the file path. The second argument is the resulting image's string value. If you copy-paste (sorry, "kill-yank") it in the repl, it would act just like if you typed this string.

(swank::send-to-emacs '(:write-image "/path/to/test.png" "test"))

You can even send raw image data using this method. I don't have anything on hand to generate raw image data so here's some code that reads from a file, converts it to a base64 string and sends it over SWANK.

(with-open-file (in "/path/to/test.png" :direction :input  :element-type '(unsigned-byte 8))
                (let* ((arr (make-array (file-length in) :element-type '(unsigned-byte 8)))
                       (b64 (progn (read-sequence arr in) (cl-base64:usb8-array-to-base64-string arr))))
                  (swank::send-to-emacs `(:write-image ((:data ,b64 :type swank-io-package::png)) "12345"))))

Note that the first argument to :write-image must be a list with a single element, which is itself a plist containing :data and :type keys. :data must be a base64-encoded raw image data. :type must be a symbol in swank-io-package. It’s not exactly convenient, so if you’re going to use this functionality a helper function/macro might be necessary.

Image in a SLIME popup buffer

Inline images are not always convenient. They can’t be resized, and will take up as much space as is necessary to display them. Meanwhile EMACS itself has a built-in image viewer (image-mode) which can fit images to width or height of a buffer. And SLIME has a concept of a “popup buffer” which is for example used by macroexpander (C-c C-m) to display the result of a macro expansion in a separate window.

Interestingly, slime-media.el defines an event :popup-buffer but it seems impossible to trigger it from SWANK. It is however a useful code reference for how to create the popup buffer in ELisp. This time we won’t bother with “events” and just straight up execute some ELisp code using swank::eval-in-emacs. However by default, this feature is disabled on Emacs-side, so you’ll have to set Emacs variable slime-enable-evaluate-in-emacs to t in order for this method to work.

Also Emacs must be compiled with ImageMagick for the resizing functionality to work.

Anyway, the code to view file in the popup buffer looks like this:

(defun view-file-slime (file &key (bufname "*image-viewer*"))
  (let ((ns (namestring file)))
    (swank::eval-in-emacs
     `(progn
        (slime-with-popup-buffer (,bufname :connection t :package t)
          (insert-image (create-image ,ns))
          (image-mode)
          (setf buffer-file-name ,ns)
          (not-modified)
          (image-toggle-display-image))
        ;; try to resize the image after the buffer is displayed
        (with-current-buffer ,bufname (image-toggle-display-image))))))
    ))

Arriving to this solution has required reading image-mode’s source code to understand what exactly makes image-mode behave just like if the image file was opened in Emacs via C-x C-f. First off, image-mode can be a major and a minor mode - and the minor mode is not nearly as useful. slime-with-popup-buffer has a :mode keyword argument but it would cause image-mode to be set before the image is inserted, and it will be a minor mode in this case! Therefore (image-mode) must be called after insert-image.

Next, the buffer must satisfy several conditions in order to get image data from the filename and not from the buffer itself. Technically it shouldn’t be necessary, but I couldn’t get auto resizing to work when data-p is true. So I set buffer-file-name to image’s filename and set not-modified flag on.

Next, image-toggle-display-image is called to possibly resize the image according to image-mode settings. It's called outside of slime-with-popup-buffer for the following reason: the buffer might not yet be visible and have any specific dimensions assigned to it, and therefore resizing will do nothing.

Here’s an example of how calling this function looks in Emacs.

The position of the popup buffer depends on whether the original Emacs window is wide enough or not. I think it looks better when it’s divided vertically. Use M-x image-transform-fit-to-height or M-x image-transform-fit-to-width to set up the auto-resizing method (it gets remembered for future images). Unfortunately there’s no way to fit both height and width, at least with vanilla Emacs. I prefer fit-to-width because in case the image is too tall, it is possible to scroll the image vertically with M-PgDn and M-PgUp from the other buffer. Unlike other image-mode buffers, this buffer supports a shortcut q to close itself, as well as various SLIME shortcuts, for example C-c C-z to return to the REPL.

That's it for now, hope you enjoyed this overview and if you happen to know a better way to display images in Emacs, I would be interested to hear about it.




win

Bushnell Wingman GPS Speaker



  • Audio & Speakers


win

[review + recipe] On Wings of Words by Jennifer Berne and Becca Stadtlander

  Each bird, bee, blossom, butterfly — was a source of joy and wonder for young Emily Dickinson. In this beautiful new picture book biography, aptly illustrated with a butterfly motif, we witness her singular metamorphosis from a keenly observant child into one of the most original and innovative poets in American literature. On Wings … Continue reading [review + recipe] On Wings of Words by Jennifer Berne and Becca Stadtlander





win

A new comic (in 2 languages) about Ig Nobel Prize winners

A new comic strip—in Russian and in English—about some of the curious characters who have won Ig Nobel Prizes. The series appears on Instagram.





win

Coronavirus restrictions to lift in NSW from Friday, but will not be following all National Cabinet measures - ABC News

  1. Coronavirus restrictions to lift in NSW from Friday, but will not be following all National Cabinet measures  ABC News
  2. Berejiklian's roadmap to freedom in NSW  Sydney Morning Herald
  3. Mother's Day state by state: What can and can't you do?  The Canberra Times
  4. Permission to mingle: NSW will ease lockdown laws on Friday  Daily Telegraph
  5. NSW to ease lockdown restrictions from Friday  The Age
  6. View Full coverage on Google News




win

Cape Town restaurant wins Guinness world milkshake record

Guinness World Records has named a South African restaurant as the official titleholder for 'Most Varieties of Milkshakes Commercially Available'.




win

Clawing back normality: Bangkok cat cafe reopens after virus shutdown

As Thailand's capital cautiously reopens many restaurants shuttered over coronavirus fears, the feline "employees" of the Caturday Cafe are back at work.







win

Youtube Comment WIN